Перейти к содержанию
    

MSP-EXP430G2 и прерывания от Timer1

Добрый день!

 

Разбираюсь с MSP430 Launchpad с установленным G2553.

Подскажите, почему не происходит прерывание по Timer1?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

емнип, ещё общее разрешение IE всего таймера где-то в контролах

 

Соврал.

 

У вас, похоже, SMCLK нигде не инициализируется. Во всяком случае, не видно, откуда он 1МГц.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На сколько я помню, SMCLK по умолчанию 1 МГц.

Я уже разобрался, всё заработало.

Надо было вот так сделать:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извиняюсь, посмотрел бегло.

А тот ли вектор прерывания? Там же 2 вектора и в основном мне приходилось работать со вторым.

Если вектор прерывания не обработан процессор пойдет через перезагрузку. Поставьте брекпоинт на начало main и увидите.

Этот МК и многие другие MSP я юзал, могу поделится опытом, только я не часто бываю сдесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...