Таймер А на MSP430F2012

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
WaL97
Потрогал лапой паяльник
Сообщения: 342
Зарегистрирован: Чт июн 30, 2011 10:10:23
Откуда: лютая Россия
Контактная информация:

Таймер А на MSP430F2012

Сообщение WaL97 »

Всем привет! Собственно, никак не поладить с контроллером.

Код: Выделить всё

#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;
}

К контроллеру подключен часовой кварц. При такой конфигурации генерация на кварце поднимается, частота 32.7 кГц, все нормально.
Частота дерганья ножкой при этом 37.856 кГц.
Были мысли, что путаю порядок бит.
НО при различных конфигурациях TACTL результат одинаков абсолютно:

Код: Выделить всё

TACTL |= TASSEL1 + MC1 + TAIE;
TACTL |= TASSEL1 + MC0 + TAIE;
TACTL |= TASSEL0 + MC1 + TAIE;
TACTL |= TASSEL0 + MC0 + TAIE;


На изменение TACCR0 также не реагирует, зараза.

Подскажите пожалуйста, что я делаю не так? Предполагаю, что ответ лежит на поверхности, но решения не нахожу.
— Да не боись, всего двенадцать вольт… и восемьсот ампер.
WaL97
Потрогал лапой паяльник
Сообщения: 342
Зарегистрирован: Чт июн 30, 2011 10:10:23
Откуда: лютая Россия
Контактная информация:

Re: Таймер А на MSP430F2012

Сообщение WaL97 »

не сбрасывал бит прерывания

__interrupt void Timer_A(void)
{
P1OUT ^= BIT1;
TACTL &= ~TAIFG;
}
— Да не боись, всего двенадцать вольт… и восемьсот ампер.
Ответить

Вернуться в «Разные вопросы по МК»