BBlackmoon
Thành Viên PIF
Mình cần cho LED nháy 1s dùng timer. Tinh thần là cho TimerA0 đếm 0,5s, ngắt 2 lần thì nháy LED. Code như sau:
void Timer0_init()
{
TA0CTL = TASSEL_2 + MC_2 + ID_3 + TAIE ;//SMCLK(1Mhz)
//continuous mode
//divided by 8
TA0CCR0 = halfsecond;//enable interrupt when the timer count to 62500 (=0.5s)
TA0CCTL0 = CCIE;//enable interrupt CCR0
}
__interrupt void CCR0_Interrupt (void)//name of the interrupt vector
{
count ++;
TA0CCR0+=halfsecond;//add 0.5s to CCR0
if (count == 2)
{
count = 0;
P2OUT ^= BIT3;
}
}
Biến count được khai báo toàn cục đầu chương trình:
#include<msp430.h>
#define halfsecond 62500
unsigned int count = 0;
Tuy nhiên code không chạy, cụ thể là cứ mỗi lần ra khỏi vector ngắt của timer thì count lại bị về 0.
Ai giúp mình với.
Xin cảm ơn!
void Timer0_init()
{
TA0CTL = TASSEL_2 + MC_2 + ID_3 + TAIE ;//SMCLK(1Mhz)
//continuous mode
//divided by 8
TA0CCR0 = halfsecond;//enable interrupt when the timer count to 62500 (=0.5s)
TA0CCTL0 = CCIE;//enable interrupt CCR0
}
__interrupt void CCR0_Interrupt (void)//name of the interrupt vector
{
count ++;
TA0CCR0+=halfsecond;//add 0.5s to CCR0
if (count == 2)
{
count = 0;
P2OUT ^= BIT3;
}
}
Biến count được khai báo toàn cục đầu chương trình:
#include<msp430.h>
#define halfsecond 62500
unsigned int count = 0;
Tuy nhiên code không chạy, cụ thể là cứ mỗi lần ra khỏi vector ngắt của timer thì count lại bị về 0.
Ai giúp mình với.
Xin cảm ơn!