Khai báo biến khi ngắt timer1

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • skywave123
    Nhập môn đệ tử
    • Mar 2015
    • 2

    #1

    Khai báo biến khi ngắt timer1

    Chào các bác cho em hỏi vì về khai báo biến khi dùng ngắt timer1. Em khai báo biến ở main và tại sao phải khai báo trong chương trình xử lý ngắt 1 lần nữa thì mới chạy không thì báo lỗi, nhưng biến trong main và trong chương trình xử lý hầu như ko liên quan gì nhau!!! em đang rất cần các bác giúp em, em cám ơn! hic hic
    Đây là code của em:
    #include "p30f4011.h"
    #include "config.h"
    #include "Console.h"
    #include "Compiler.h"
    #include "SymbolTime.h"
    #include "lcd.h"
    _FOSC(CSW_FSCM_OFF & XT_PLL8);
    _FWDT(WDT_OFF);
    _FBORPOR(MCLR_EN & PWRT_OFF&RST_IOPIN);
    _FGS(CODE_PROT_OFF);
    void __attribute__((__interrupt__, __auto_psv__)) _T1Interrupt(void);
    int main()
    {

    BUTTON_1_TRIS=1;
    int dem;
    LCD_Init();
    LCD_Clear();
    LCD_Gotoxy(0,0);
    LCD_PutString("dem......");
    DENBAO1_TRIS=0;
    T1CON = 0; // Clear Timer 1 configuration
    T1CONbits.TCKPS = 3; // Set timer 1 prescaler (0=1:1, 1=1:8, 2=1:64, 3=1:256)
    PR1 = 2880; // Set Timer 1 period (max value is 65535)
    _T1IP = 1; // Set Timer 1 interrupt priority
    _T1IF = 0; // Clear Timer 1 interrupt flag
    _T1IE = 1; // Enable Timer 1 interrupt
    T1CONbits.TON = 1; // Turn on Timer 1 */
    while(1)
    {
    if(PUSH_BUTTON_1==0)
    {
    while(PUSH_BUTTON_1==0){}
    dem++;
    LCD_Gotoxy(1,1);
    LCD_PutNum(dem);
    }
    }
    }
    void __attribute__((__interrupt__, __auto_psv__)) _T1Interrupt(void)
    {
    // Clear Timer 1 interrupt flag

    _T1IF = 0;
    int dem;
    if(dem==5)
    {
    dem=0;
    }
    DENBAO1=~DENBAO1;
    }
Working...