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

 
 
> Прерывания
Allregia
сообщение Sep 8 2009, 04:36
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Если я правильно понял, приоритет прерываний в МСП фиксированный и поменять его нельзя.
У меня в программе используются несколько прерываний - от вотчдога, дух таймеров, УАРТов и АЦП.
Но (!) - прерывание от одного из таймеров должно быть самым приоритетным, остальные не важно, подождут.
Правильно ли будет для этого в процедуре обработки прерывания этого таймера запретить глобально прерывания вообще, а при выходе разрешить? Или в этом есть "подводные камни" ?

т.е.:
Код
#pragma vector=TIMERB0_VECTOR          
__interrupt void TIMERB0_interrupt(){
      __disable_interrupt();

     .........  тут остальной код обработчика прерывания

     __enable_interrupt();
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Allregia
сообщение Sep 9 2009, 06:46
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Еще небольшой вопрос: я привык (по работе с другими МК), все глобальные переменные, используемые в прерывании, всегда обьявлять volatile.
Но IAR не дает обявить "volatile bool".
Или здесь это не нужно ?
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 9 2009, 06:56
Сообщение #3


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Allregia @ Sep 9 2009, 10:46) *
IAR не дает обявить "volatile bool".

А bool volatile ?
Должен.
Это нужно, если необходимо.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Sep 9 2009, 07:36
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(MrYuran @ Sep 9 2009, 09:56) *
А bool volatile ?
Должен.

А почему это должен? От того, что редактор среды его выделяет ? smile.gif
В версии 410, например, нет такого типа и нужны в нем действительно нет, компилятор совершенно свободно использует bis/bic когда нужно.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Sep 9 2009, 07:45
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Dog Pawlowa @ Sep 9 2009, 11:36) *
В версии 410, например, нет такого типа и нужны в нем действительно нет, компилятор совершенно свободно использует bis/bic когда нужно.

У меня версия 3.40 и там есть такой тип, нужно только stdbool.h подключить
А там вот что:
Цитата
#ifndef __cplusplus

#define bool _Bool
#define true 1
#define false 0

#define __bool_true_false_are_defined 1


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Allregia   Прерывания   Sep 8 2009, 04:36
- - MrYuran   Если я чего-то не путаю, вложенные прерывания по у...   Sep 8 2009, 04:48
- - Allregia   Да, я не совсем правильно выразился. Интересует им...   Sep 8 2009, 04:52
- - VAI   А при обработке прерываний глобальные прерывания и...   Sep 8 2009, 05:06
- - Allregia   Всем спасибо.   Sep 8 2009, 06:42
|- - zltigo   Цитата(Allregia @ Sep 9 2009, 08:46) пере...   Sep 9 2009, 07:00
|- - Allregia   Цитата(zltigo @ Sep 9 2009, 10:00) Все ог...   Sep 9 2009, 14:37
|- - zltigo   Цитата(Allregia @ Sep 9 2009, 16:37) ...в...   Sep 9 2009, 15:42
|- - Allregia   Цитата(zltigo @ Sep 9 2009, 18:42) Вот, к...   Sep 9 2009, 15:57
|- - zltigo   Цитата(Allregia @ Sep 9 2009, 17:57) то т...   Sep 9 2009, 16:05
||- - Allregia   Цитата(zltigo @ Sep 9 2009, 19:05) Будет ...   Sep 9 2009, 19:11
||- - zltigo   Цитата(Allregia @ Sep 9 2009, 21:11) Я та...   Sep 9 2009, 19:59
||- - Dog Pawlowa   Цитата(Allregia @ Sep 9 2009, 22:11) Это ...   Sep 9 2009, 20:29
||- - Allregia   Цитата(Dog Pawlowa @ Sep 9 2009, 23:29) Э...   Sep 9 2009, 21:07
||- - zltigo   Цитата(Allregia @ Sep 9 2009, 23:07) О то...   Sep 10 2009, 06:25
||- - Dog Pawlowa   Цитата(Allregia @ Sep 10 2009, 00:07) Это...   Sep 10 2009, 07:28
|- - rezident   Цитата(Allregia @ Sep 9 2009, 21:57) Я в ...   Sep 9 2009, 16:55
- - VAI   Я флаги так делаю: Описываю Кодenum on_off { ...   Sep 10 2009, 06:43
- - Allregia   Кстати о препроцессоре, хотя это немного не в тему...   Sep 12 2009, 10:24
|- - zltigo   Цитата(Allregia @ Sep 12 2009, 12:24) Мож...   Sep 12 2009, 10:30
- - Allregia   Можно использовать и как именнованные: #define P...   Sep 12 2009, 13:44
|- - zltigo   Цитата(Allregia @ Sep 12 2009, 15:44) А т...   Sep 12 2009, 14:04
|- - Allregia   Цитата(zltigo @ Sep 12 2009, 17:04) Тольк...   Sep 12 2009, 15:03
|- - zltigo   Цитата(Allregia @ Sep 12 2009, 17:03) Во ...   Sep 12 2009, 15:19
- - Allregia   Согласен, с тем макросом должно быть просто BIN8(1...   Sep 12 2009, 15:33
- - AHTOXA   Всё больше утверждаюсь во мнении, что High Tech (д...   Sep 12 2009, 15:37


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:12
Рейтинг@Mail.ru


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