Нужно прерывание по спаду, а не по низкому уровню. Если "все" перечитать еще раз, это станет понятно
Проект [[Open Robotics]] - универсальные модули для построения роботов Модули Open Robotics можно приобрести в магазине shop.roboforum.ru Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!
по фронту иимпульса ногой дкргает один раз, но в тело прогаммы не идет. А как сбросить влаг прерывания?
Добавлено спустя 16 минут 1 секунду: Прочитал вот что : При возникновении прерывания выполняется последняя инструкция, запоминаеется место останова и программа идет в обработчик прерывания. По окончании кода, написанного в обработчике пре6рывания, автоматически сбрасывается флаг прерывания (для этого вроде должна кодвизардом автоматически добавляться какаято строка, но у меня ее нет почему то) и программ идет обратно в основной цикл.
Прерывания управляется регистрами. Записью 1 можно включить возмодность возникновения прерывания, запись 0 - выключить. (младшие биты регитстра управления прерываниями) Также можно задать условие возникновения прерывания - по уроню или по спаду (старшие биты этого регитсра)
Мне для этого dsh на Ваш контроллер изучать придется Там где-то есть регистр в котором при возникновении события один и битов устанавливается в "1". Вот ее и нужно сбросить, когда прерывание обработали.
Флаг сбрасывается аппаратно при входе в обработчик прерывания. contr, изучи все же даташит прежде чем советы писать.
Проект [[Open Robotics]] - универсальные модули для построения роботов Модули Open Robotics можно приобрести в магазине shop.roboforum.ru Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!
ВНИМАТЕЛЬНО надо читать и неспеша, думая о том что прочитал. Просто читать бесполезно.
к561ЛА7 писал(а): А как сбросить влаг прерывания?
в вашей цитате написано кодгда он автоматически сбрасывется ( но цитируете вы не верно ! ) Вы пишите: "по-памяти" - значит запомнили не верно момент очистки флага.
А там откуда вы цитируете - http://avr123.nm.ru/03.htm КРУПНО ВЫДЕЛЕНО как флаги прерываний можно очищать програмно.
Проект [[Open Robotics]] - универсальные модули для построения роботов Модули Open Robotics можно приобрести в магазине shop.roboforum.ru Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!
Ага, а в тех что я использую прерывания ваще как класс отсутствуют. И че это я про них тут не пишу?
Проект [[Open Robotics]] - универсальные модули для построения роботов Модули Open Robotics можно приобрести в магазине shop.roboforum.ru Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!
Спасибо большое за помощь, вродебы заработало. В чем причина так и нек понял. Убрал все инструкции goto_mesto_ и переписал все заново. Убрал все задержки, на момент окончания которых почемуто контоллер выдавал короткий импульс на выходы. В железе контроллер почему-то не хочет отрабатывать короткие импульсы на входе прерывания, и воспринимает за импульсы наводки если оставить провод в воздухе
> на момент окончания которых почемуто контоллер выдавал короткий импульс на выходы.
В PROTEUS на эти выходы ставьте точку останова - рассказано на страничке http://proteus123.narod.ru - прога встанет в паузу в этом месте, далее смотрите в регистрах и в тексте и т.п. причину выдачи импульса.