Biz baştan buyana hafıza yetmemesi üzerine yoğunlaştık. pic C dilini bilmediğim için bişey söylemek zor. Sn.elkgazi nin söylediği gibi farklı bir sebeb olabilir.
Arkadaşlar! Dikkatimi çeken bir husus, üst düzey dillerde her yapılan "Delay" tarzı işlemler ayrı bir döngü oluşturmakta bu da hafızayı yiyip bitirmektre. Bunun yerine programda 1 yerde (zamanlama hep aynıysa) delay kullanıp gerekli yerlerden asm de olduğu gibi CALL gidi alt yordam çağrıları yapılabilinir mi? en azından derlenirken tek delay döngüsü oluşur gibime geliyor.
sn abuzettin20 ye katılıyorum genelde asm koduna izin veriyor programlar
her gecikme için ayrı döngü kurulacağına tek döngü ile bütün gecikme işlemleri yapılabilir
hafıza kaplamaması için iyi bir yöntem
yüksek programlar her foksiyon için birden fazla asm komutu kullanır oysa basit bir iş için asm kullanmak iyi bir mantık
bende 16f628 de dediğin sorunu yaşadım ve aynı ayak yapısında 16f648 kullandım. olmasaydı iki işlemci birden kullanmayı düşünüyordum.
ayrıca c dili yerine picin yapısına daha uydun pbp(pic basic pro) da kullanabilirsin. bir kaç ayrı forumda hafızayı c den daha tasarruflu kullandığını okumuştum. yerinde olsam 16f452 ye geçerdim...
bence öncelikle programı bitir. sonunda kaç bayt olduğunu gör sonra bir karar daha verirsin(programdan kastım algoritma...) saygılarımla...
18f452 kullanabilirsin tabi ama gerek yok..
senin sorunun mainde yazdığın kodun çok uzun olması..
maine yazdığın kodu 3e böl mesela hepsini ayrı bir fonksiyon içine at ve mainde o fonksiyonları çağır.. bu sorunu çözecektir.. iyi çalışmalar..
merhabalar,
lcd ye bişeyler yazamamanın 877 nin hafızasıyla uzaktan yakından ilgisi yok ayrıca lcd ye bişeyler yazmak doğal olarak programı uygun bişekilde tasarlayamadığın takdirde hafızayı dolduracaktır.