Цитата(Vyatka @ Jul 27 2006, 15:08)

Как только состояние выхода изменяется, так программа зависает.
PORTB &= ~0x80;
PORTB |= 0x80;
Как это? Я не видел у AVR команды "Останов". Значит программа что-то делает.
Если в это время дать прерывание и посмотреть стек - можно узнать, где она это делает.
Весьма вероятно, что где-то (со смыслом или по ошибке) этот порт или результат его работы опрашивается.
Можно дизассемблировать код и редактором поискать обращения к этому порту.
Это конечно при условии, что есть питание и этот порт своим выходным сигналом не воздействует на Reset, Int0 и прочие входы процессора.