С MSP430 в жизни работал мало... вероятно, где-то туплю... Пускаю таймер А от SMCLK, все идет на ура... после этого надо пустить тамер B от ACLK... тут происходит "затык"... стоит однажды контроллеру (F147) войти в прерывание таймера B, как все уходит в полный даун... даже в пустое... ради эксперимента пустил В от того же SMCLK, все работает прекрасно... уже перестраховался, чищу все регистры... странно как-то все это...
Вот код, может кто подскажет?
Код
void TimerInit(void)
{
// timer A init
TACCR2 = 0x00;
TACTL = TASSEL_2+TACLR; // SMCLK, clear TAR, UP timer mode, int enable, /1
TACCTL0 |= CCIE; // CCR0 interrupt enabled
TACCTL1 = 0x00;
TACCTL2 = 0x00;
TACCR0 = SMCLK_FREQ_HZ/FREQ_INTERRUPT;
TACTL &= ~TAIFG;
TACCTL0 &= ~CCIFG;
TACTL |= MC_1+TAIE;
// timer B init
TBCCR2=0x00;
TBCTL = TBSSEL_1+TBCLR+ID_2; // ACLK, clear TAR, UP timer mode, int enable, /4
TBCCTL0 |= CCIE; // CCR0 interrupt enabled
TBCCTL1 = 0x00;
TBCCTL2 = 0x00;
TBCCTL3 = 0x00;
TBCCTL4 = 0x00;
TBCCTL5 = 0x00;
TBCCTL6 = 0x00;
TBCCR0 = ACLK_FREQ_HZ;
TBCTL &= ~TBIFG;
TBCCTL0 &= ~CCIFG;
TBCTL |= MC_1+TBIE;
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A0_Int(void)
{
...
return;
}
#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B0_Int(void)
{
...
return;
}