ccs c programı pic18f8722 işlemcisinde %60 üzeri derlemiyor.

Başlatan ender1genc, 19 Ekim 2022, 15:13:31

ender1genc

merhaba,

pic18f8722 işlemcisi için ccs c kullanıyorum. 5k satır program yazdım; %60 kadar yer tutuyor; biraz daha yazdığımda ise hafıza doldu vs gibi bir uyarı vermeden sanki eksik bir parantez koymuşum gibi programın sonuna atıyor...
Başına böyle bir şey gelen ya da bir öneride bulunabilecek var mı?

mehmet

Kalbini kırdın mı?
Optimizasyon kısmını da kontrol edin.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

sadogan



fahri-

Muhtemelen kullandığınız fonksiyonların içindeki işlemler çok uzun. PIC in yapısındaki bank lara sığmıyordur. Fonksiyonları parçalyın ya da yeni nesil PIC lere geçin.


run

Alıntı yapılan: fahri- - 19 Ekim 2022, 16:32:25Muhtemelen kullandığınız fonksiyonların içindeki işlemler çok uzun. PIC in yapısındaki bank lara sığmıyordur. Fonksiyonları parçalyın ya da yeni nesil PIC lere geçin.
Bank problemi olmayan yeni nesil PIC lerden hangilerini tavsiye edersiniz?
özgürlük için teknoloji


fahri-

Alıntı yapılan: run - 19 Ekim 2022, 22:24:37Bank problemi olmayan yeni nesil PIC lerden hangilerini tavsiye edersiniz?

18FxxKxx
18FxxQxx
serisi

ender1genc

18F87K22 ile o kadar çok sorun yaşadım ki k serisi çok daha ucuz olmasına rağmen eskisi ile devam etmeye karar verdim.

sadogan

Alıntı yapılan: ender1genc - 20 Ekim 2022, 10:18:07Teşekür ederim ancak yeni programda işe yaramadı.
Programınızı bir yere yükleyebilirseniz test edebiiriz.

mehmet

Sabit değerli #define veya const ile
tanımlayın.
Mecbur olmadıkça long tanımlamasını
kullanmayın. Ram alanınız yeterli
gelmiyor. Gerekirse fonksiyon içindeki
değişken tanımlamalarını kullanın.
Genel değişkenlerden mümkün olduğunca
uzakdurun.
En fazla 255 değeri için long int
tanımlaması fazla olmakta.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

sadogan

8 bin satırı kopyalamak sıkıntılı, proje dosyalarını ,dosya şeklinde yükleye bilirsen.

ender1genc

#13
Dosya için ekle kısmı göremediğim için bu şekilde gönderdim.

25 Ekim 2022, 16:21:32
Alıntı yapılan: mehmet - 25 Ekim 2022, 12:59:38Sabit değerli #define veya const ile
tanımlayın.
Mecbur olmadıkça long tanımlamasını
kullanmayın. Ram alanınız yeterli
gelmiyor. Gerekirse fonksiyon içindeki
değişken tanımlamalarını kullanın.
Genel değişkenlerden mümkün olduğunca
uzakdurun.
En fazla 255 değeri için long int
tanımlaması fazla olmakta.

Teşekkür ederim,
Değiştirdim ama işe yaramadı; ram % 8 dolu.





sadogan

Main fonksiyon ile while() arasını büyük diye uyarı veriyor.
aradaki kodalrı main dışında bir fonsiyona taşıyınca %60 rom %8 ram olarak derledi
/* */ bunu çok kullanarak bazı programları kapatmışsınız ccs c /* */ bu tür kapama çok olunca şaşırabiliyor.
 kapatmak istediginiz yeri bloklayıp "Toggle Comments" kapatman daha iyi olur diye düşünüyorum.