[an error occurred while processing this directive]
Нет, необязательно. Нужно только тогда, когда переменная ИЗМЕНЯЕТСЯ в прерываниях.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
Это могут быть различные флажки, которые устанавливаются по прерываниям, а анализируются в основной программе. Инвариантность поняли правильно. Насчет 4.11 ничего плохого сказать не могу, нареканий в его сторону практичекси не видно. Если они и есть, то касаются в основном оптимизации на верхнем уровне. В этом смысле версии 3.хх были гораздо хуже.
Составить ответ
|||
Конференция
|||
Архив
Ответы
И это не так. Обязательно переменную которая меняется аппаратурой, прерывание - это таккая же программа как все остальное. — prosto_Alex (13.12.2005 15:08 80.77.40.11 , 96 байт)
Прерывание вообще-то не программа, оно формируется аппаратно. — Bill (13.12.2005 15:20 193.233.83.90 , 231 байт)
Да, но вы не поняли, сути это не меняет. Нет необходимости делать флаги меняющиеся в прерывании как volatile — prosto_Alex (13.12.2005 15:24 80.77.40.11 , пустое )
есть необходимость, и изменяемые, и как правило используемые (+) — радиолюбитель без лицензии (13.12.2005 16:39 62.64.81.146 , 654 байт)
А можете полный листинг асма мэйн? Это жцц? — prosto_Alex (13.12.2005 16:58 80.77.40.11 , пустое )
да, это avr-gcc — радиолюбитель без лицензии (13.12.2005 17:18 62.64.81.146 , пустое )
пожалуйста (+) — радиолюбитель без лицензии (13.12.2005 17:13 62.64.81.146 , 1199 байт)
а вот пример, почему нужно ставить volatile на используемые в прерывании переменные (+) — радиолюбитель без лицензии (13.12.2005 16:57 62.64.81.146 , 1994 байт)
Из-за того, что опустил пролог/эпилог, может создасться впечатление, что будет все работать. Но это не так. (+) — радиолюбитель без лицензии (13.12.2005 16:45 62.64.81.146 , 768 байт)
Как это? По моему обязательно. — Михаил Е. (13.12.2005 15:32 81.13.30.10 , пустое )
Почему, объясните? — Bill (13.12.2005 15:31 193.233.83.90 , пустое )
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru