Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Нелогичнo прекъсване при ATmega8
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=1895
Страница 1 от 1

Автор:  Ugeen [ Нед Фев 26, 2006 1:49 pm ]
Заглавие:  Нелогичнo прекъсване при ATmega8

Сигурно ви писна от мен ,но пак проблеми.Закачих на вход INT1 инфраред приемник за дистанционно.На изхода му при нормално положение без сигнал има "1".Конфигурирах процесора да прекъсва по падащ фронт на INT1.В началото на програмата (в main) разрешавам общо прекъсване и започвам изпълнението на програмата си.За мое голямо учудване
още при пускане на захранването процесора влиза веднага в прекъсване и изпълнява подпрограмата .Мерих нивото на сензора без сигнал и е "1".Мерих с осцилоскопа,но няма смущения.Защо се получава така,имали ли сте такъв проблем.Пробвах и с други конфигурации на фронта ,но проблема остава.Хванах го че щом разреша прекъсванията със "sei" и веднага изпълнява независимо че нивото на INT1 e "1".Опитах се да разреша общото прекъсване в програмата ,2 сек. след старта за да избегна процесите за начално установяване ,но щом се изпълни "sei" веднага влиза в прекъсване.

Автор:  ypauns [ Нед Фев 26, 2006 2:21 pm ]
Заглавие: 

Проблема се нарича RTFM (Read The fucking manual )
Щом променяш нивото на задействане на някое INT, трябва да изчистиш след това съответния флаг INTF иначе като разрешиш прекъсванията ще се изпълни съответното прекъсване като става в твоя случай- пише го изрично в пдф-то.

Автор:  Ugeen [ Нед Фев 26, 2006 2:44 pm ]
Заглавие: 

И това е вярно но се оказа че скапания осцилоскоп ме е изиграл.Мерих с друг и се оказа че този инфраред приемник е голям ментак и си подава "0" когато му падне (без сигнал) и пак се вдига в "1".Веднага сложих друг модел и всичко заспа.Напразно обвиних атмелците ,но напоследък много си изпатих докато разуча тази ATMega8. Поставих си за цел да я разнищя до край и ще го направя.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/