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

 
 
> Прерывания
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
Ответов
VAI
сообщение Sep 10 2009, 06:43
Сообщение #2


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

Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37



Я флаги так делаю:
Описываю
Код
enum on_off               { OFF, ON, POH = OFF };

typedef struct              // самый первый - самым младшим битом
{ unsigned Start_motor   : 1;
  unsigned m_prtcl       : 1;
  unsigned redirect      : 1;
  unsigned enable_fuzzy0 : 1;
  unsigned enable_fuzzy1 : 1;
  unsigned enable_test_Ux: 1;
  unsigned enable_myrg   : 1;
  unsigned rst_measure   : 1;
  unsigned yes_measure   : 1;
  unsigned cls_ind       : 1;
  unsigned cursor_on     : 1;
  unsigned lcd_busy      : 1;
  unsigned power_pressed : 1;
  unsigned to_calibration: 1;
  unsigned error_print   : 1;
  unsigned debug_ind     : 1;
  unsigned debug         : 1;
  unsigned in_align      : 1;
} FLAG;

Объявляю в файле с глобальными переменными
Код
volatile FLAG flag;

Для других файлов
Код
extern volatile FLAG flag;

Примеры использования:
Код
flag.cls_ind = ON;

if ( flag.enable_fuzzy1 == OFF )
  T1_duty = 0;


2 Allregia - почаще смотрите асм-листинг, который генерит компилятор...


--------------------
Если зайца бить, его можно и спички научить зажигать
Сколько дурака не бей - умнее не будет. Зато опытнее
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
- - Allregia   Еще небольшой вопрос: я привык (по работе с другим...   Sep 9 2009, 06:46
|- - MrYuran   Цитата(Allregia @ Sep 9 2009, 10:46) IAR ...   Sep 9 2009, 06:56
||- - Dog Pawlowa   Цитата(MrYuran @ Sep 9 2009, 09:56) А boo...   Sep 9 2009, 07:36
||- - MrYuran   Цитата(Dog Pawlowa @ Sep 9 2009, 11:36) В...   Sep 9 2009, 07:45
|- - 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
- - 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 Текстовая версия Сейчас: 20th August 2025 - 16:36
Рейтинг@Mail.ru


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