Цитата(nunzio @ Jul 31 2005, 20:53)
To Alexs : По авр я чайник (пока).Поэтому и вынужден аргументировать свою позицию цитатами из книг.Схемотехнику портов с прерываниями пока не нашел, но думаю скоро найду.
Я всего лишь попросил обосновать ваше высказывание(ответы типа иди посмотри на схему мне не подойдут - т.к. я только начинаю изучать микроконтроллеры) и по возможности ответить на мои вопросы - но кроме глупого и неуместного сарказма я от вас большего не добился.
Если с флагами вопросы мы утрясли, попробуем разобраться с портами. Правда без схемы не очень удобно, но все же. В книгах которые у вас есть эти схемы наверняка приведены, но лучше пользоваться оригинальными даташитами. Частенько в отечественной литературе встречаются опечатки.
Все дело в том, что при операции типа PORTB3 = 1, 1 записывается в защелку порта, которая отделена от PINB3(физического вывода микроконтроллера) тристабильным буфером и её состояние может не соответствовать реальному потенциалу на выводе PINB. Простой пример: управление NPN транзистором в ключевом режиме. В PORTB3 = 1, а на PINB3 Uнасбэ=1.1В. При попытке прочитать PINB3 прочитается 0.
Что касается внешних прерываний, то авторы ведь нигде не рекомендуют включать вывод в режим выхода, записывать в него 1, а потом силой притягивать его к 0. Они говорят лишь, что это возможно. Но если вдруг такая ситуация возникает, то вероятно выходной буфер выхода переходит в режим ограничения ток. Он не сгорает, но возрастает потребление вцелом, что не всегда преветствуется.
Цитата из книги А.В.Евстифеева
"Микроконтролеры АВР семейств ТИНИ и МЕГА фирмы АТМЕЛ"
"Следует отметить , что все внешние прерывания генерируются даже в том случае ,если соответствующие выводы сконфигурированы как выходы.Эта особенность мк позволяет генерировать прерывания програмно."
Об этом можно сказать, что если Вам понадобилось создать програмное прерывание аналогичное внешнему, то этого можно добиться указанным способом, но только вывод при этом можно ведь никуда не подключать.
А сарказма и в помине нет. Все мы чайники, просто разных калибров.