FLASH MEMORY Hatası

hamdisuat

Üye
Katılım
26 Eyl 2011
Mesajlar
188
Puanları
1
Yaş
66
Aşağıdaki programda gecikme komutu 1 sn olmasına rağmen 4-5 sn sonra ekranda sadece üst satır görünüyor. Örnek:
Address Kod
0040 3469
olması gerekirken üst sadece üst satır görünüyor.
#include <16f877A.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG
,NOCPD
#use delay(clock=40000000)
#use fast_io(a)
#define use_portb_lcd TRUE
#include <lcd.c>
int16 address, deger;

void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(adc_OFF);
setup_ccp1(CCP_OFF);
setup_ccp2(CCP_OFF);

set_tris_a(0x01);

lcd_init();
adres(1,1);
printf(lcd_yaz, "\fProgram Kodlari");
delay_ms(1000);
lcd_sil();
adres(1,1);
printf(lcd_yaz, "\fAdres Kod");
address=0;
deger=0;
while (!(address==0x3FFF));
{
deger=read_program_eeprom(address);
adres(1,2);
printf(lcd_yaz, "\n%1x %1x", address, deger);
delay_ms(500);
address++;
if (input(pin_a0))
{
delay_ms(20);
write_program_eeprom(address, 0x0000);
}
}
printf(lcd_yaz, "\f Program Bitti");
}

Sizce hatayı nerede yapıyorum.
 
16f877 nin bu fonksiyonları desteklediğini sanmıyorum write_eeprom (address, value) ve value = read_eeprom (address ) fonksiyonlarını kullanman lazım.
 
16f877A destekliyor (alıntı :serdar çiçek) zaten value, değerin ingilizcesi aynı anlama geliyor. Yalnız benim kullandığım yazılımda şimdi dikkatimi çekti; deger(value)=read den sonra "program" ifadesi geliyor bunu bir daha inceleyeyim, ama derleme hatası olmadı. "Program Kodları" yazısı bir 4-5 saniye kalıyor (halbuki 1 sn sonra silinmesi lazım) ekranda, sonra Adres Kod yazısı ekrana geliyor adres ve değer bilgisi alt satırda görünmüyor. Saçma olabilir ama benim lcd.c de gotoxy yerine "adres" kelimesini kullanmıştım, yukarıda da "address"i kullandım bu bir karmaşaya neden olur mu diye aklıma takıldı. Cevap için sağol
 
Printf de %1x değil de %lx yazmayı deneyin.
 
Silvestir üstat hatırlarsan, ses dosyası için frekanslar uymuyor demiştin. Şimdi baktım (1 haftadır rs232-max232 kurmaya çalışıyorum breadboardları sökmek istemedim) clock değeri 4milyon hz yerine 40milyon girmişim, bu hata diğer dosyalarda da devam etmiş, bu dosyada da olduğu gibi. Değiştirdiğimde "delay" komutları normal süresinde işlemeye başladı ancak ses dosyası hala müzik tonu vermedi, yukarıdaki alternatifleri de (1 yerine L, program ibaresini çıkardım, AO da button var, A1'e -/+ değer logic 1/0 giriş uyguladım) denedim ama sonuç değişmedi.
 
Printf de \f \n gibi ifadeleri kaldır. \n yeni satıra geç demek belki orda hata yapıyor. Ayrıca yazma sonrası delay koy bu işlem biraz uzun sürer.
 

Forum istatistikleri

Konular
128,125
Mesajlar
915,240
Kullanıcılar
449,837
Son üye
betül hüsrevoğlu

Yeni konular

Çevrimiçi üyeler

Geri
Üst