View Single Post
Old 26-03-2015, 06:09 PM   #1
skywave123
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;
}
skywave123 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn