Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MSP-EXP430G2 и прерывания от Timer1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Darth_Vader
Добрый день!

Разбираюсь с MSP430 Launchpad с установленным G2553.
Подскажите, почему не происходит прерывание по Timer1?

CODE
#include <msp430.h>

/*
* main.c
*/
void main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
// Инициализация светодиодов
P1DIR = BIT0 + BIT6;
P1OUT = 0;
// Инициализация таймера Timer1
TA1CCR0 = 480; // период таймера
TA1CCR1 = 120; // яркость свечения LED1 (120/480)
TA1CCR2 = 360; // яркоcть свечения LED2 (360/480)
TA1CCTL0 = CCIE; // разрешаем прерывание от регистра TA1CCR0
TA1CCTL1 = CCIE; // разрешаем прерывание от регистра TA1CCR1
TA1CCTL2 = CCIE; // разрешаем прерывание от регистра TA1CCR2
TA1CTL = TASSEL_2 + ID_0 + MC_1; // Источник тактирования SMCLK (1 МГц), /1, считать до TA1CCR0
__enable_interrupt();
while(1);
}


#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer1 (void)
{
P1OUT ^=BIT6;
}
MrYuran
емнип, ещё общее разрешение IE всего таймера где-то в контролах

Соврал.

У вас, похоже, SMCLK нигде не инициализируется. Во всяком случае, не видно, откуда он 1МГц.
_pv
.
Darth_Vader
На сколько я помню, SMCLK по умолчанию 1 МГц.
Я уже разобрался, всё заработало.
Надо было вот так сделать:
CODE
#pragma vector=TIMER1_A0_VECTOR
__interrupt void Timer1_A0 (void)
{
P1OUT = BIT0 + BIT6;
TA1IV = 0;
}
#pragma vector=TIMER1_A1_VECTOR
__interrupt void Timer1_A1 (void)
{
switch(TA1IV){
case TA1IV_TACCR1:
P1OUT &= ~BIT0;
break;
case TA1IV_TACCR2:
P1OUT &= ~BIT6;
break;
default:
break;
}
TA1IV = 0;
}
Jack-S
Извиняюсь, посмотрел бегло.
А тот ли вектор прерывания? Там же 2 вектора и в основном мне приходилось работать со вторым.
Если вектор прерывания не обработан процессор пойдет через перезагрузку. Поставьте брекпоинт на начало main и увидите.
Этот МК и многие другие MSP я юзал, могу поделится опытом, только я не часто бываю сдесь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.