Цитата(zltigo @ Sep 9 2009, 18:42)

Вот, ключевое слово "глюки", его употребляют именно тогда, когда не ведают, что творят и вместо этого стучат в бубен и уповают на волшебные слова типа volatile:
Помоему, отчего происходят такие глюки - совершенно очевидно.
Цитата
Ну ненужно ВСЕГДА нужно только тогда, когда действительно нужно. Не нужно, когда переменная используется исключительно в обработчике прерывания.
Да, это так - если переменная используется ТОЛЬКО в прерывании - можно и не volatile, но если она статик, то того что ее сделать volatile - хуже не будет, зато не надо будет если захочется ее в программе использовать.
Конечно если переменная не статическая и используется только в прерывании, то volaltile не нужно.
Цитата
Не поможет (а то и помешает) и тогда, когда хоть некая переменная декларирована как volatile к ней несколько раз обращаются за пределами прерывания - волшебное изменение по ходу развития алгоритма тоже не подарок
Volatile в т.ч. и для этого и придумана.
Цитата
- тут volatile давить и прикрываться, например, критическими секциями.
Критические секции - это когда и в програме и в прерывании используются многобайтные переменные (long для 16-битных, или int для 8-битных). Тоже по понятным причинам.
Цитата
Да, ну и как у MSP430 c битовоадресуемой памятью? Зачем ему bool?
Я в основном для флагов использую. А что, надо целый int для каждого флага отводить? Я привых к ОЗУ в МК относиться бережно, второй ведь по значимости ресурс после I/O, IMHO.
P.S. И плиз, не надо тут устраивать фидошного цепляния к словам, типа "всегда volaltile", тут не ру.эмбеддед и не с.х.азерс.
Я ведь вопрос задал другой, и ответ на него уже есть.