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

 
 
> STM32F103 :выход из прерывания от системного таймера, Где находится бит который надо сбрасывать?
Serj78
сообщение Jan 29 2010, 06:56
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 966
Регистрация: 27-05-06
Из: СПб
Пользователь №: 17 499



Структура обработки прерываний STM32 основана на том, что попав в прерывание, пользователь должен определить его источник (в общем случае) и сбросить соответствующий бит, который вызвал это прерывание.

Без этого из прерывания не выйти.

А в каком регистре находится бит который ВЫЗЫВАЕТ (не разрешает!! ) прерывание от системного таймера?

Столкнулся с тем, что однажды попав в прерывание от системного таймера, оттуда не выйти.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sonycman
сообщение Feb 3 2010, 12:53
Сообщение #2


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Ну вот, что же Вы сразу не сказали, что в обработчик процессор не заходит? smile.gif

Вектора находятся именно в стартапе - видите строчку:
Код
DCD     SysTick_Handler

это адрес, по которому будет переход при прерывании от системного таймера.

Посмотрите дальше в этом файле, где находится эта метка.
Вероятнее всего там заглушка вида:
Код
SysTick_Handler        PROC
                       EXPORT  SysTick_Handler           [WEAK]
                       B       .
                       ENDP

это тупое зацикливание.

Вам можно сделать так - перед таблицей векторов разместите строчку:
Код
IMPORT    SysTick_Handler

и переименуйте свою функцию обработчика вот так:
Код
void SysTick_Handler(void)


Таким образом, вектор будет указывать не на заглушку, а на адрес функции.

Прежде, чем использовать прерывания, следует хорошо разобраться с тем, как они работают. wink.gif
Go to the top of the page
 
+Quote Post

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


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

 


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


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