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

 
 
 
Reply to this topicStart new topic
> LPC1758 проблема с прерываниями
BaRaGoZ
сообщение Aug 19 2011, 11:20
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 19-08-11
Пользователь №: 66 788



День добрый, меня зовут Вячеслав,недавно купил КИТ фирмы кеил MCB1750 на базе МК lpc1758, и сразу же столкнулся с проблемой:Пишу под ИАР 6.1, прошивается все нормально, поигрался с пинами, тоже все в порядке, далее решил разобраться с
прерываниями(до этого работал с lpc2138, там схема настройки прерываний совершенно другая нежели тут) и столкнулся с проблемой.Открыл пример, где генерится прерывание от таймера0 и в обработчике моргают лампочки, но в режиме дебага заметил, что в функцию обработчика прерывания программа не заходит а висит на строчке "B Default_Handler" из файла cstartup_M.c, проверил настройки запуска таймера и настройку прерывания, вроде все нормально, вот кусок кода настройки:
T0TCR_bit.CE = 0;
T0TCR_bit.CR = 1;
T0TCR_bit.CR = 0;
T0CTCR_bit.CTM = 0;
T0MCR_bit.MR0I = 1;
T0MCR_bit.MR0R = 1;
T0MCR_bit.MR0S = 0;
// set timer 0 period T0PR = 18-1;
T0MR0 = (TIMER0_IN_FREQ)/(18 * TIMER0_TICK_PER_SEC);
// init timer 0 interrupt
T0IR_bit.MR0INT = 1;
// clear pending interrupt
T0TCR_bit.CE = 1;
// counting Enable
NVIC_IntEnable(NVIC_TIMER0);
__enable_interrupt();
и вот функция обработчика, по названию совпадающая со строчкой PUBWEAK TMR0_IRQHandler из cstartup_M.c файла:
void TMR0_IRQHandler (void)
{
LED1_FIO ^= LED1_MASK;
LedBlink();
T0IR_bit.MR0INT = 1;
NVIC_ClrPend(NVIC_TIMER0);

} Отсюда делаю вывод что неправильно работает NVIC контроллер, может кто-нибудь сталкивался с данной проблемой? Заранее спасибо!

Сообщение отредактировал BaRaGoZ - Aug 19 2011, 11:21
Go to the top of the page
 
+Quote Post
BaRaGoZ
сообщение Aug 19 2011, 12:58
Сообщение #2





Группа: Новичок
Сообщений: 5
Регистрация: 19-08-11
Пользователь №: 66 788



Выявил интересный факт, когда в свойствах проекта ставлю Language->C то прерывания начинают работать, если же язык С++, то происходит ошибка описанная выше...
Go to the top of the page
 
+Quote Post
Nixon
сообщение Aug 19 2011, 13:03
Сообщение #3


Гуру
******

Группа: Админы
Сообщений: 2 736
Регистрация: 17-06-04
Из: Киев
Пользователь №: 48



Тикайте! Сейчас zltigo придет!
sm.gif sm.gif sm.gif


--------------------
Вам помочь или не мешать?
Go to the top of the page
 
+Quote Post
BaRaGoZ
сообщение Aug 19 2011, 13:16
Сообщение #4





Группа: Новичок
Сообщений: 5
Регистрация: 19-08-11
Пользователь №: 66 788



Цитата(Nixon @ Aug 19 2011, 17:03) *
Тикайте! Сейчас zltigo придет!
sm.gif sm.gif sm.gif


Я что то делаю не так? Я новичок просто...
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Aug 19 2011, 15:05
Сообщение #5


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(BaRaGoZ @ Aug 19 2011, 17:58) *
Выявил интересный факт, когда в свойствах проекта ставлю Language->C то прерывания начинают работать, если же язык С++, то происходит ошибка описанная выше...

Подозреваю, что в C++ по умолчанию функции невидимые извне. Так что их нужно объявлять подругому. Боюсь ошибиться, что-то как-то extern "C" ...


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
ReAl
сообщение Aug 19 2011, 17:17
Сообщение #6


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Да видимые они.
Просто имена декорируются и поэтому «не подходят» в тех местах, где нужны не декорированные. В частности, в таблице векторов.
А при extern "C" не декориркются.

Цитата(BaRaGoZ @ Aug 19 2011, 16:16) *
Я что то делаю не так? Я новичок просто...
Что-то НЕ делаете.
Не вникаете в основы языков, с которыми работаете, принимаете как абстракцию. Дырявую.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

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

 


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


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