PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   dsPIC - Bộ điều khiển tín hiệu số 16-bit (http://www.picvietnam.com/forum/forumdisplay.php?f=29)
-   -   Khai báo biến khi ngắt timer1 (http://www.picvietnam.com/forum/showthread.php?t=34157)

skywave123 26-03-2015 06:09 PM

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;
}


Múi giờ GMT. Hiện tại là 12:48 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam