Рабтаю с микроконтроллером MSP430F5438IPZ в среде разработки IAR.
Пытаюсь обработать прерывания от таймера, но не получается, не знаю в чём дело....
Что я делаю:
1. Регистр TACCR0 = 0xFFFF (это регистр сравнения, если счетчик дойдёт до этого значения, возникает переполнение и реализуется прерывание)
2. регистр TA0R = 0x0000 (этот регистр счетчик инкрементируется, при равном значении с регистром TACCR0 генерируется прерывание)
теперь идет настройка регистра TA0CCTL0:
3. TA0CCTL0 |= 0x0020; //Настройка битов режима работы - непрерыный режим.... MCx
4. TA0CCTL0 |= 0x0003; // настройка битов ожидания и разрешения прерывания TAIFG,
5. TA0CCTL0 |= 0x0200; Выбор источника тактирования Таймера А - 10 SMCLK
объявление функции обработки прерывания:
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
... пытаюсь мограть лампочками....
}
код программы:
#include "io430.h"
//Функция инициализации портов и регистров
void Initialization();
void main( void )
{
Initialization();
//Входим в бесконечный цикл
while(1)
{
}
}
void Initialization()
{
//Останавливаем сторжевой таймер
WDTCTL = WDTPW + WDTHOLD;
TA0R = 0x0000;
TA0CCTL0 = 0x0000;
//непрерывный режим таймер вверх
TA0CCTL0 |= 0x0020;
TA0CCTL0 |= 0x0003;
TA0CCTL0 |= 0x0200;
//Пределы счетчиков...
TA0CCR0 = 0xFFFF;
P10DIR = 0;
P10DIR |= 0xC0;
P10OUT = 0xC0;
}
добавил в окно наблюдения регистр TA0R, который должен инкрементироваться, но он не изменяется, и мк не переходит в функцию обработки прерывания ( лампочки не мигают).
Надеюсь всё подробно описал. Заранее спасибо за ответ.


