|
// ----------------------
// select internal clocks
// ----------------------
// SELM_2 == XT2CLK; DIVS_2 == XT2CLK/4 (SMCLK); MCLK=XT2CLK
BCSCTL2 = (SELM_2|SELS|DIVS_2); // SMCLK = 4MHz/4 = 1000 kHz
_BIS_SR(OSCOFF); // LFXT1=off// ----------------
// Timer A
// ----------------
TACTL = (TASSEL1|ID1|MC0|TACLR); // stop and clear timer A, SMCLK/4, up count
CCR0 = 2500; // Timer A input clock 250 kHz, or 4 us. For 10 ms let's to count to 2500
// TACCTL0 = (CCIE|SCS|CCIS1); // interrupt on capture
TACTL = (TASSEL1|ID1|MC0|TAIE); // run timer A, enable TA interrupt//----------------------------------------------------------
// Timer A ISR
// -----------
#pragma vector=TIMERA1_VECTOR /* 0xFFEA Timer A CC1-2, TA */
__interrupt void ISR_timer_A1(void)
{
rtos_tick = 1; // set tick flag for RTOS
TACTL = (TASSEL1|ID1|MC0|TAIE); // run timer A, enable TA interrupt,clear interrupt flag
} // ISR_timer_A1
E-mail: info@telesys.ru