08-04-2009, 06:50 AM
Merhaba,
lcd'ye bir şeyler yazdırırken (pic 16f8777 ile) rb0 pininden ve rb4 pininden iki tane kesme kullandım. Proteus'ta sağlıklı bir şekilde çalışıyor, derleyicide altta görülen uyarıları veriyor. Ne demek istediğini anlayamadım. Yardımcı olursanız sevinirim.
proteus uygulamasına bakmak isterseniz :
http://rapidshare.com/files/263371686/kesme.rar
lcd'ye bir şeyler yazdırırken (pic 16f8777 ile) rb0 pininden ve rb4 pininden iki tane kesme kullandım. Proteus'ta sağlıklı bir şekilde çalışıyor, derleyicide altta görülen uyarıları veriyor. Ne demek istediğini anlayamadım. Yardımcı olursanız sevinirim.
proteus uygulamasına bakmak isterseniz :
http://rapidshare.com/files/263371686/kesme.rar
Alıntı:
interrupts disabled during call to prevent re-entrancy: (lcd_init)
interrupts disabled during call to prevent re-entrancy: (lcd_putc)
interrupts disabled during call to prevent re-entrancy: (@delay_ms1)
interrupts disabled during call to prevent re-entrancy: (lcd_putc)
interrupts disabled during call to prevent re-entrancy: (@delay_ms1)
Kod:
#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
#include <lcd.c>
#int_ext
void kesme()
{
lcd_init();
printf(lcd_putc,"kesme");
printf(lcd_putc,"\n.............");
delay_ms(1000);
}
#int_rb
void bportu()
{
if(input(pin_b4))
{
lcd_init();
printf(lcd_putc,"kesme");
printf(lcd_putc,"\n b portu");
delay_ms(1000);
}
}
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_d(0x00);
set_tris_b(0xff);
ext_int_edge(h_to_l);
enable_interrupts(int_ext);
enable_interrupts(int_rb);
enable_interrupts(global);
lcd_init();
while(1)
{
printf(lcd_putc,"\f dongu");
delay_ms(500);
printf(lcd_putc,"\n devam");
delay_ms(500);
printf(lcd_putc,"\f ediyor");
delay_ms(500);
}
}