[an error occurred while processing this directive] [an error occurred while processing this directive]
Будучи въедливым ASM-атиком обнаружил у AVR такие странности
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Начинающий AVR-ей 15 февраля 2002 г. 11:12

Все I/O registers (0...63) доступны командами IN, OUT через регистры R0...R31. А побитно доступны (SBI, CBI) только половина I/O регистров (0...31). Но в старшей недоступной части оказались такие регистры, как GIMSK,GIFR,TIMSK,TIFR, к которым хотелось бы обращаться побитно. И наоборот, в младшей части находятся такие регистры, как UBRR, биты которых не нужны.
Получается неудобно и программно-ёмко, например, разрешить/запретить прерывание или сбросить флаг.
Кстати, сбросить флаг (в ноль) записью туда "1" - что ли там действует механизм Искл.ИЛИ? А если там был "0" - значит вместо сброса туда запишется "1"?
Так ли это или я что-то еще недоучил?

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

Ответы



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

E-mail: info@telesys.ru