Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: MURSEL - 03 Aralık 2007, 17:28:28

Başlık: 16f877 out of rom hatası
Gönderen: MURSEL - 03 Aralık 2007, 17:28:28
merhaba arkaşlar 16f877 de rom %52 gecince  böyle bi hata veriyor "out of rom,a segment or the program is to large probas "  %52 den sonra bi lcd komutu yazsam  bile bu hatayı veriyor"printf(lcd_putc,"\b%03u",tel2);" gibi  kaçırdıgım nokta nedir  daha önce farklı bi uygulamamdada %50 nin  üzerine cıktıgımda bu hatayı almıştım  bu konuda bilgisi olan arkaşların yardımını bekliyorum  selametle a.e.o
Başlık: eğer C'de yazıyorsan
Gönderen: mikroserdar - 03 Aralık 2007, 22:17:22
arkadaşım merhaba. Ben de deaynı sorun oldu. ama ben CCS C'de yazıyordum. Eğer C'de yazıyorsan o hatayı vermemesi için yazdığın alt programlar void (main) dışında yazman gerek

void main()

{




}


void CPU_SETUP()

{

set_tris_b(0x11);
set_tris_a(0x20);
CCP_1_LOW=0;
CCP_1_HIGH=0;
setup_ccp1(ccp_capture_div_16);
enable_interrupts(int_ccp1);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
set_timer1(0);
setup_timer_0(rtcc_internal | rtcc_div_1);
disable_interrupts(int_timer0);
enable_interrupts(global);
set_timer0(0);

}

yani örnekte görüldüğü gibi cpu_setup () alt programı void (main) dışında.

yani alt programları ana programın dışında tutarsan ROM'da yer kazanmış olursun

kolay gelsin.
Başlık: 16f877 out of rom hatası
Gönderen: MURSEL - 04 Aralık 2007, 11:27:57
arkadaşım öncelikle teşekkürler .. denedim fakat olamdı :(
"out of rom,a segment or the program is to large probas "  probas cagırdıgım bir fonksiyon adı yani main in içinden  cagırdım fonksiyon senin yazıları okuduktan sonra bir alt fonkisoyondaha oluşturdum fakat bu fonksiyonuda   propas  içinden cagırmış olmam   sorunun devam etemsi için sebebmi sence.. maine dönüm ordanmı cagırmam gerek ?
Başlık: 16f877 out of rom hatası
Gönderen: MURSEL - 04 Aralık 2007, 11:40:18
@mikroserdar  cok sagol arkaşım verdigin bilgiyle iş hallettim  arkadaşlara durumu kısa anlatayım karşılaştıkalrında benim gibi madur kalmasınlar
main()
{
probas();
}
probas()
{
//yazılımda yüklendigim fonkisoyon %52 rom dolunca program hata verdi

}


çözüm:
main()
{
while(1)
{probas();
arama();
}

probas()
{
//işlem
}
arama()
{
//işlem
}
Başlık: 16f877 out of rom hatası
Gönderen: picusta - 05 Aralık 2007, 11:01:48
biraz daha açiklayici olabilirmisin? Daha ziyade sorunun nedeni hakkinda.
Başlık: 16f877 out of rom hatası
Gönderen: Ziya - 05 Aralık 2007, 11:50:46
Bu konuda forumda en az iki başlık var. Birine geçen hafta cevap yazmıştım.

Sadece bir defa çağırdığınız alt program (fonksiyon) öncesine #separate talimatını ekleyeceksiniz. Derleyici tek seferde çağırılan fonksiyonları üst programa gömer (in-line yapar). Bunu ayırarak yapması için o talimatı kullanmanız gerekir.

ana program veya alt programları müstakil derlendiğinde 2k'yı geçmeyecek büyüklükte tutun.
Başlık: 16f877 out of rom hatası
Gönderen: MURSEL - 07 Aralık 2007, 10:05:35
teşekkürler  ziya hocam  hatanın icerigi hakınnda bilgilendirdigin için    @picusta hatayla ilk defa karşılaştııgm için  sorun ile ilgili acıklayacak bilgim yoktu ziya  hocamız telafi etti .. a.e.o