ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
166703
Stalko (16.09.2009 09:17, просмотров: 7139)
С 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; }