سلام
من میخوام تایمر میکرو 16f877A رو راه اندازی کنم ..( تایمر 1)
اینم کدی هست که نوشتم.. خود تایمر کار میکنه و از 0 تا 65535 میشمره و سرریز میشه ..
ولی با این وجود که وقفه تایمر پیکره بندی شده ، ولی هرگز وارد سیکل وقفه نمیشه!!!
میشه بگید مشکل برنامه از کجاست؟
ممنون
اینم کد:
[code=c]#include <16f877A.h>
#fuses hs

#use delay(clock=4000000)

#define LCD_ENABLE_PIN PIN_D1
#define LCD_RS_PIN PIN_D2
#define LCD_RW_PIN PIN_D3
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

#include <lcd.c>
#int_timer1
int a;
void TIMER1_isr(void){
output_toggle(pin_b5);
}




void main()
{
set_tris_e(0xff);
lcd_init();

output_high(pin_b6);
delay_ms(200);
output_low(pin_b6);


lcd_gotoxy(1,1);
lcd_putc("POWERED-BY:"
delay_ms(500);

lcd_gotoxy(1,2);
lcd_putc("ENG-REZANEJAD"
delay_ms(3500);
printf(lcd_putc,"\f\ "

lcd_gotoxy(1,1);
lcd_putc("AIR-COMPRESSOR"
delay_ms(3500);
printf(lcd_putc,"\f\ "
setup_timer_0(t1_internal|t1_div_by_2);
enable_interrupts(global);
enable_interrupts(int_timer1);






while(TRUE)
{

lcd_gotoxy(1,1);
printf(lcd_putc,"%u ",a);


if(!(input(pin_e0))){output_high(pin_b7);}
if(input(pin_e0)){output_low(pin_b7);}//TODO: User Code
}

}[/code]