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

 
 
> 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 2 2010, 14:11
Сообщение #2


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

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



Этот таймер не имеет предделителя, соответственно он работает на частоте ядра.

Функция обработчика прерывания от SysTick должна передавать управление основной программе раньше, чем произойдёт повторный её вызов.

Как эта функция у Вас выглядит?

И ещё - сначала записывайте reload регистр, а уже потом разрешайте прерывание.
В тексте у Вас наоборот.
Go to the top of the page
 
+Quote Post
Serj78
сообщение Feb 2 2010, 14:42
Сообщение #3


Знающий
****

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



Цитата(sonycman @ Feb 2 2010, 17:11) *
И ещё - сначала записывайте reload регистр, а уже потом разрешайте прерывание.
В тексте у Вас наоборот.



Спасибо! завтра попробую поменять их местами...

Функция выглядит как и все прерывания, я ее скопировал из файла какого-то примера, входящего в состав кейла, там все прерывания перечислены были.
Кстати, если этот файл подключить к папкe "sourse" прерывания из него выполняются, а вот объявленных переменных в основной программе он не видит почему-то... Хотя имена регистров, объявленных через структуры, видит. Пока переношу из него только необходимые прерывания, но интересно, почему не происходит передача переменных.

Сообщение отредактировал rezident - Feb 2 2010, 19:21
Причина редактирования: Излишнее цитирование.
Go to the top of the page
 
+Quote Post

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


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

 


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


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