سلام
من میخوام تایمر میکرو 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]
من میخوام تایمر میکرو 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]