[an error occurred while processing this directive]
Ответ: Здесь дело может быть в том, что
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 08 июля 2003 г. 13:54
В ответ на: Не сталкивался кто с багами в IAR AVR 2.23 при прерываниях... отправлено Kimmel 08 июля 2003 г. 13:21

у Вас выполняются некоторые манипуляции с данными, которые изменяются по прерываниям. Простой пример.


int v1, v2; // v2 изменяется в п/п обработки прерываний

v1 = v2; // прерывание в момент присваивания может привести
// к неправльному результату, поскольку младший байт v2
// будет взят от старого значения, а старший - от нового.


Чтобы избежать подобных ситуаций, необходимо производить все манипуляции запретив прерывания. Следует обратить внимание, чтобы переменные, изменяемые по прерываниям были объявлены как volatile.
И вообще. Возьмите последнюю версию V2.28A.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru