Пpивет, Alex!
*** 09 May 06 18:19, Alex Mogilnikov wrote to Andrey Bivshih:AB>> Да так же, как и сейчас. Или я чего-то не догоняю. AB>> Как в пиках, например. Прочитал, модифицировал, записал назад
AM> И операция получается неатомарной, из-за чего требуется AM> предварительно запретить прерывания, а после - не забыть разрешить, в AM> результате получить ~5 инструкций вместо двух, да и запрет прерываний AM> на ~5 циклов иногда сам по себе неприятен...
Так даже не в этом дело - установка флагов в TIFR не подчиняется глобальным прерываниям, это совершенно асинхронный процесс, и запрет прерываний ничуть не поможет...
AM> Посмотри как сделана периферия например в at91 - там на каждый AM> аппаратный флаговый регистр три програмных: регистр установки (w/o), AM> регистр сброса (w/o) и регистр состояния (r/o). Очень удобно когда AM> надо, например, разрешить или запретить одно из прерываний или AM> включить один из I/O выводов.
Hу, как сделано в AVR, тоже вполне даже неплохо - с масками и так можно делать все, что угодно (хоть и не за одну операцию), а флаги - сбрасывать записью "1".
с уважением Владислав