Все правильно. Объясняю:
(«Телесистемы»: «Конференция «Микроконтроллеры и их применение»»)

миниатюрный аудио-видеорекордер mAVR

Отправлено BLACKEAGLE 06 мая 2003 г. 22:01
В ответ на: ICQ есть? отправлено avrprog 06 мая 2003 г. 20:47

Бит 7 в SREG аппаратно устанавливается обратно в 1 командой RETI при выходе из обработчика, разумеется, тут же произойдет и разрешенное/взведенное прерывание (например, от UART). Этот бит из обработчика сбрасывают лишь в том случае, когда необходимо разрешить прерывание текущего обработчика другим, а в нормальном случае нехрен его трогать - сбрасывай из основной программы на здоровье.

Для того, чтобы не мешались неиспользуемые прерывания, следует их индивидуально запретить. Для этого есть соответствующие "маскирующие" биты в управляющих регистрах периферии - таймеров, SPI, UART и т.д. Для UART классических AVR это биты RXCIE, TXCIE и UDRIE в регистре UCR (в Мегах регистр/биты называются немного по-другому) - НЕ ПУТАЙ С БИТАМИ ЗАПРОСОВ - RXC, TXC и UDRE в регистре USR. Биты xxxIE при установке в 0 запретят соответствующие прерывания.

И учти еще один момент. Биты запросов прерываний в USR (RXC/TXC/UDRE) сбрасываются в неактивное состояние автоматически при вызове соответствующего обработчика, но если такового обработчика нет - сбросить их можно/нужно руками, но... в единицу, а не в ноль - такова особенность АВРской архитектуры.

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

Ответы



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

E-mail: info@telesys.ru