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

 
 
> 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
Ответов
Serj78
сообщение Feb 3 2010, 06:09
Сообщение #2


Знающий
****

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



Поменял местами.. ситуация не изменилась. sad.gif
функция прерывания выглядит так:

CODE

void SysTickHandler(void)
{ // u32 time1=50;


// GPIOC->ODR |= (0x1000); // выставили 1 на светодиоде

// while(time1--); //подождали

// GPIOC->ODR &= ~(0x1000); // выставили 0 на светодиоде

}


Пробовал закоментарить всю функцию целиком, эффект тот же


далее, решил проверить как ведет себя контроллер.
написал следующий код:

CODE

SysTick->LOAD=31000;
test[0]=0;
SysTick->CTRL=7;

for(k=0;k<20000;k++)
{ GPIOA->ODR|=A8; // выводим 20000 периодов меандра на порт A8
GPIOA->ODR &= ~(A8);
}


После иницаализации сиситемного таймера вывожу на ногу A8 меандр и меряю длительность пачки осциллографом.
Так вот, видно что системный таймер отсчитывает нужное количество тактов, ( длительность пачки напрямую зависит от содержимого регистра LOAD)
входит в прерывание и там, очевидно остается- программа перестает выполняться..
Go to the top of the page
 
+Quote Post

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


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

 


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


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