Таймер А на MSP430F2012
Добавлено: Ср фев 19, 2020 19:17:47
Всем привет! Собственно, никак не поладить с контроллером.
К контроллеру подключен часовой кварц. При такой конфигурации генерация на кварце поднимается, частота 32.7 кГц, все нормально.
Частота дерганья ножкой при этом 37.856 кГц.
Были мысли, что путаю порядок бит.
НО при различных конфигурациях TACTL результат одинаков абсолютно:
На изменение TACCR0 также не реагирует, зараза.
Подскажите пожалуйста, что я делаю не так? Предполагаю, что ответ лежит на поверхности, но решения не нахожу.
Код: Выделить всё
#include <msp430f2012.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
BCSCTL3 |= LFXT1S_0 | LFXT1S_1;
while ((BCSCTL3 & LFXT1OF) != 0);
BCSCTL2 |= SELM0 | SELM1 | SELS;
P1OUT = 0;
P1DIR = BIT1;
TACTL |= TASSEL1 + MC1 + TAIE;
TACCR0 = 0xFF;
__bis_SR_register(GIE);
while(1)
{
}
}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A(void)
{
// Меняем состояние вывода P1.6 на противоположное
P1OUT ^= BIT1;
}
Частота дерганья ножкой при этом 37.856 кГц.
Были мысли, что путаю порядок бит.
НО при различных конфигурациях TACTL результат одинаков абсолютно:
Код: Выделить всё
TACTL |= TASSEL1 + MC1 + TAIE;
TACTL |= TASSEL1 + MC0 + TAIE;
TACTL |= TASSEL0 + MC1 + TAIE;
TACTL |= TASSEL0 + MC0 + TAIE;Подскажите пожалуйста, что я делаю не так? Предполагаю, что ответ лежит на поверхности, но решения не нахожу.