[an error occurred while processing this directive]
Правильно ли я понял, что переменную используемую в основной программе и прерывании надо обязательно называть volatile?
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
И что такое код инвариантный по отношению к циклу. Это когда переменная не меняется в цикле? Я качнул 4.11. Так что, лучьше с ним не связываться?
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Нет, необязательно. Нужно только тогда, когда переменная ИЗМЕНЯЕТСЯ в прерываниях. — Bill (13.12.2005 15:05 193.233.83.90, 352 байт)
- И это не так. Обязательно переменную которая меняется аппаратурой, прерывание - это таккая же программа как все остальное. — 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