|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
|
Ðiều Chỉnh | Xếp Bài |
26-03-2015, 06:09 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Mar 2015
Bài gửi: 2
: |
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; } |
|
|