CCS de 18f4620 için kod yazıp bir değişken tanımladığında derleyici değişkenin adresini 0x00 ve 0x7f aralığında biyere atıyo datasheette ise bu bölge sfr olarak görünüyo. Programı çalıştırınca saçma sapan şeyler oluyo. Burda ccs mi hata yapıyo yoksa benim mi bir hatam var?
muhakkak sen hata yapıyondur ama ccs de eski sürümse dogaldır.istersen yeni sürüm verem
versiyon 4.058 daha yenisi var mı?
üstelik bahsettiğim ram bölgerine;
char asd[122]
#locate asd=0x05
yazıyorum ve asd değişkenini kullanmadığım zaman hiçbir sorun olmuyo. Yani burda ram bölgesini işgal ederek derleyicinin o bölgeyi diğer değişkenler için seçmesini engelliyorum ve asd değişkenini hiç kullanmadığımda sfr lere müdahale etmemiş oluyorum. Daha önce ccs de 18f4620 kullanan varsa muhakkak böyle bişeyle karşılaşmış olmalı çünkü ccs değişkenleri ramda düşük adresten başlayarak dolduruyo. Üstelik CCS ' nin 4.038, 4.049, 4.057 sürümlerindede aynı durum mevcut.
Bende 4.065 var böyle birşeyle hiç karşılaşmadım...
Alıntı yapılan: "mihri"CCS de 18f4620 için kod yazıp bir değişken tanımladığında derleyici değişkenin adresini 0x00 ve 0x7f aralığında biyere atıyo datasheette ise bu bölge sfr olarak görünüyo. Programı çalıştırınca saçma sapan şeyler oluyo. Burda ccs mi hata yapıyo yoksa benim mi bir hatam var?
O aralık access ram aralığıdır. Her banktan rahatlıkla erişilir. SFR'ler Bank 15'in 80H-FFH arasındadır yani F80H-FFF arası. CCS bu konuda hata yapmıyor.
Alıntı yapılan: "mihri"CCS de 18f4620 için kod yazıp bir değişken tanımladığında derleyici değişkenin adresini 0x00 ve 0x7f aralığında biyere atıyo datasheette ise bu bölge sfr olarak görünüyo. Programı çalıştırınca saçma sapan şeyler oluyo. Burda ccs mi hata yapıyo yoksa benim mi bir hatam var?
O aralık access ram aralığıdır. Her banktan rahatlıkla erişilir. SFR'ler Bank 15'in 80H-FFH arasındadır yani F80H-FFF arası. CCS bu konuda hata yapmıyor.
O zaman büyük ihtimal siz programda hata yapıyosunuz
ram alanını siz atayarak mı kullandınız
Peki ozaman şunu açıklayalım 18f4620ye kod yazdım ve çalıştırdığım zaman program hatalı çalışıyor. Aynı programa aşağıdaki;
char asd[122]
#locate asd=0x05
kod parçasını yazdığım zaman düzgün çalışıyor. Daha önce söylediğim gibi asd değişkenini kullanmıyorum. Bunu nasıl açıklayabilirsiniz.
4620 üzerinde 32KB'ı geçen bir program yazdım. Ram belleğinin neredeyse tamamını ve büyük çoğunluğunu structure dizisi şeklinde kullandım ve hiç sorunla karşılaşmadım. CCS sürümü 4.038 idi.
Sizin programı görmeden de yorum yapamam.
Kodlar aşağıda çalışan ve çalışmayan olarak aynı dosyaları kaydettim çalışan ile çalışmayan arasında tek fark stc.h dosyasnda;
char doldur[122];
#locate 0x05
yazıyo olması, daha önce bahsettiğim gibi.
Normalde lcd de mesut yazması gerekiyo yukarıdaki değişkeni ve adresini tanımlamazsam yazmıyo.
http://rapidshare.com/files/95291915/4620.rar.html
Ziya hocam nedir yorumunuz. Ayrıca yine başka bir programda proteusta sorunsuz çalışan kod devrede saçmalıyo (18f4620)
Fazla zaman ayıramadım kusura bakma. Dediğin doğru, bir sorun var. Değişik yöntemler denedim ama olmadı. Vakit bulursam akşam biraz daha detaylı bakacağım.
Ben hala çözemedim problemi çözen var mı?