А сюда смотрели? По моему похожая проблема.
AVR _ Странное поведение портов!
Автор: Sergio66 May 16 2006, 16:34
http://electronix.ru/forum/index.php?act=P...=10&t=16161__________
Цитата
код без оптимизации работает, с оптимизацией по параметру "s" - приходится вставлять строки 170, 211 и 300. Как они влияют на работу?
Ну так на то она и оптимизация, быстрее получается.
Например переход со стр.171 (пины стали входами)
на стр.175 (читаем, что на этих пинах), (без NOP),
без оптимизации 12 тактов, с оптимизацией 5 тактов (в AVRStudio, чуть правленый код),
болше чем в 2 раза.
____
К проблеме не относится.Но.
Не надо при выходе из прерывания восстанавливать флаг I в SREG.
reti сама это сделает, даже в ассемблере.
А в Си, посмотрите листинг, SREG = 0b10000000;абсолютно бесполезна,
все равно SREG сохраняется при входе и восстановится при выходе.
_____
И еще, Вы уверены, что таймер1 у Вас выставлен правильно?
_________
Александр2006 08 24