Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Cortex-M3 (LPC1768) + Keil uVision3 3.90 - проблемы с прерываниями
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
koluna
Здравствуйте!

Осваиваю Кейл и LPC1768.
Использую стандартную библиотеку драйверов (по крайней мере пока, чтобы освоиться немного) и CMSIS (скачал самые свежие с сайта NXP и интегрировал в проект).
Написал простейшую тестовую программку (мигаем светодиодом, шлем строку в порт). Все работает.
Попытался использовать таймер (прерывание по сравнению). Не работает.
Прерывание нужное генерируется, но хандлер, как я понимаю, не вызывается.
Смотрел дебаггером - попадаем в бесконечный цикл в стартапе (нужный вектор - нужный вектор, в стартапе отделил его на время, чтобы проверить).
Хандлер определен, но, такое ощущение, что почему-то не привязан к соответствующему вектору...
Пример от Кейла смотрел - в сырцах, вроде, все аналогично. Может настройки Кейла или со стартапом у меня что-то не так?

Проект в аттаче. Просьба помочь разобраться.
_Артём_
Цитата(koluna @ Apr 16 2012, 13:39) *
Здравствуйте!

Осваиваю Кейл и LPC1768.
Использую стандартную библиотеку драйверов (по крайней мере пока, чтобы освоиться немного) и CMSIS (скачал самые свежие с сайта NXP и интегрировал в проект).
Написал простейшую тестовую программку (мигаем светодиодом, шлем строку в порт). Все работает.
Попытался использовать таймер (прерывание по сравнению). Не работает.
Прерывание нужное генерируется, но хандлер, как я понимаю, не вызывается.
Смотрел дебаггером - попадаем в бесконечный цикл в стартапе (нужный вектор - нужный вектор, в стартапе отделил его на время, чтобы проверить).
Хандлер определен, но, такое ощущение, что почему-то не привязан к соответствующему вектору...
Пример от Кейла смотрел - в сырцах, вроде, все аналогично. Может настройки Кейла или со стартапом у меня что-то не так?

Проект в аттаче. Просьба помочь разобраться.


Попробуйте вписать строку:
Код
extern "C" void TIMER0_IRQHandler();

koluna
Цитата(_Артём_ @ Apr 16 2012, 15:16) *
Попробуйте вписать строку:
Код
extern "C" void TIMER0_IRQHandler();


Спасибо большое! Работает, не учел name mangling в Си++...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.