|
Запрет прерываний при вызове функций, и их разрешение |
|
|
|
 |
Ответов
|
Mar 27 2006, 09:34
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(Alechin @ Mar 20 2006, 18:39)  Запретить прерывания именно для функции (не обработчика прерывания) можно через __monitor перед именем функции. Правда тогда inline для нее выполняться не будет. Разве? А если перед определением функции написать: Код #pragma inline=forced
|
|
|
|
|
May 29 2006, 15:43
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(SasaVitebsk @ May 29 2006, 12:42)  Или я не прав? Уже вижу что не прав. В зависимости от точки вызова появляются ошибки. Поясню подробнее, т.к. никто не ответил. Прога. В ней два прерывания от таймера, ну и там от RS232... Одно из прерываний от таймера выполняется очень часто (регенерация экрана) и её нельзя запрещать. Во втором прерывании от таймера (выполняется на много реже) используются подпрограммы. Как сделать что-бы "регенерация" вызывалась в ходе другого прерывания? Иными словами как данное прерывание объявить так, чтобы оно ничего не портило? Очччччень жду ответа!
|
|
|
|
|
May 29 2006, 16:57
|
Участник

Группа: Свой
Сообщений: 30
Регистрация: 20-01-06
Пользователь №: 13 385

|
Цитата(SasaVitebsk @ May 29 2006, 22:43)  Цитата(SasaVitebsk @ May 29 2006, 12:42)  Или я не прав?
Уже вижу что не прав. В зависимости от точки вызова появляются ошибки. Поясню подробнее, т.к. никто не ответил. Прога. В ней два прерывания от таймера, ну и там от RS232... Одно из прерываний от таймера выполняется очень часто (регенерация экрана) и её нельзя запрещать. Во втором прерывании от таймера (выполняется на много реже) используются подпрограммы. Как сделать что-бы "регенерация" вызывалась в ходе другого прерывания? Иными словами как данное прерывание объявить так, чтобы оно ничего не портило? Очччччень жду ответа! Во втором прерывании от таймера (выполняется на много реже) используются подпрограммы - разрешить прерывания __enable_interrupt();, если прерывание от таймера может вмешатся в какойто критически важный процесс во втором прерывании то временно его запретить перед ним (процессом) , а затем разрешить опять.
|
|
|
|
Сообщений в этой теме
arttab Запрет прерываний при вызове функций Mar 13 2006, 02:46 dxp Цитата(arttab @ Mar 13 2006, 08:46) В мое... Mar 13 2006, 06:56 IgorKossak Цитата(dxp @ Mar 13 2006, 08:56) ... __en... Mar 17 2006, 14:56  dxp Цитата(IgorKossak @ Mar 17 2006, 20:56) Ц... Mar 20 2006, 09:03 arttab Искузми, не указал. Да глобальное прерывание выклю... Mar 13 2006, 08:10    Old1 Цитата(SasaVitebsk @ May 29 2006, 18:43) ... May 29 2006, 18:58     SasaVitebsk Цитата(Old1 @ May 29 2006, 21:58) ИМХО чт... May 29 2006, 19:47      SasaVitebsk Цитата(SasaVitebsk @ May 29 2006, 22:47) ... May 30 2006, 18:21       SasaVitebsk Что ещё настораживает, что записи у меня не было... May 31 2006, 09:30 arttab Не все просто с разрерением прерываний в прерывани... May 30 2006, 06:50
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|