реклама на сайте
подробности

 
 
> Прерывания для MSP430, Как правильно прописать в C?
JohnKorsh
сообщение Apr 4 2012, 14:09
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 6-01-05
Из: Россия, Москва
Пользователь №: 1 820



Добрый день!
Пишу на C в IAR. Не поможет ли кто разобраться с технологией прерываний?
Написал из примера обработку прерывания по Таймеру 0
(Up, когда до порга досчитает, предварительно таймер инициализировал:
TA0R = 0; // Reset of the Tomer A0 counter.
TA0CCR0 = 0x14D4; // Set of the upper limit for output frequency 2250 Hz.
TA0CTL |= TASSEL1 | MC1 | TAIE; // Set of the SMCLK as clock sourse, Set of the count up to TA0CCR0, set of the IE).

Вот обработка прерывания:

CODE
#pragma vector = TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void)
{
switch(__even_in_range(TA0IV, 24))
{
case 0x00: // Vector 0: No interrupts
break;
case 0x02: // Vector 2: Capture/compare 1
Test_Flag = true;
break;
case 0x04: // Vector 4: Capture/compare 2
break;
case 0x06: // Vector 6: Capture/compare 3
break;
case 0x08: // Vector 8: Capture/compare 4
break;
case 0x0A: // Vector A: Capture/compare 5
break;
case 0x0C: // Vector C: Capture/compare 6
break;
case 0x0E: // Vector E: UCRXIFG
Test_Flag_1 = true;
break;
default: break;
}
}

При глобальном запрете прерываний программа работает.
При попытке разрешить прерывание программа "улетает" в
область где нет кодов, правда, не сразу, наверное, само прерывание наступает.
(Ставил Break на прерывание, не срабатывает)

Видимо, я что-то недопонял.

И ещё. Я всегда думал, что C - язык со своболным форматом, но,
если первые две строки обработчика прерываний написать в одну, то компилятор выдаёт ошибку.

Сообщение отредактировал IgorKossak - Apr 4 2012, 18:50
Причина редактирования: [codebox] для длинного кода
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 00:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01348 секунд с 7
ELECTRONIX ©2004-2016