мега32, прерывание INT0...
в прерывании обрабатываю посылки ик пульта...
необходимо из прерывания вернуться не на место, в котором началось прерывание, а на точку обработки команды ик пульта...
например, нахожусь в меню 1, возникло прерывание, - необходимо перейти в меню 2...
нахожусь в меню 2, возникло прерывание, - необходимо перейти в меню 3... и так далее...
пока ничего умнее не придумал, как писать код команды пульта в еепром, возвращаться командой asm("reti") в начало программы и проверять еепром...
в сети видел совет с правкой стека... кто то ругает такой подход, кто то нет... сам это делать не умею, поэтому не могу даже попробовать...
кто что может посоветовать по данному поводу...
может кто уже делал подобное...
или почитать чего подскажет...
LDZ, Бред какой то.
Из прерывания выходят по команде reti.
Можешь конечно по goto (jmp) ходить на любые меню, но когда то же должна быть reti, хотя бы для того чтобы разрешить последующие прерывания.
А вообще не морочь голову. В прерывании ложи свой код команды ик пульта в переменную и по выходу из прерывания ходи по своим меню в зависимости от ее ( переменной ) значения.
ПС. Не нужно натягивать ежа на глобус. Делай просто и понятно.
Konstantin_18, может плоховато объяснил...или сам чего недопонимаю..
дисплей однострочный, много на него не выведешь, поэтому надо много прыгать...
допустим в меню 1 бегушая строка...
нажимаю кнопку пульта... в прерывании обработал команду, в переменную подставил код... вышел в бегущую строку?
это ты советуешь? не так же менюшки в девайсах устроены...
нажал кнопку, попал в какое то меню, в этом меню выбрал какой то параметр, попал в следующее меню...
секунд 5 кнопок не жал, - вернулся в бегущую строку...
так что, все это в прерывании корячить?
стоп... кажется дошло... это я перемудрил нехило...
все ж намного проще...
счас займусь...
зы... я еще не знаю кодов пульта, поэтому я вывожу их в прерывании на дисплей... и именно из этого места я не хотел возвращаться в меню 1...
на самом деле этого же не будет, а будет так, как ты и сказал...
спасибо за пинок... зарапортовался...
Текущий раздел»
Разработка цифровых устройств (FPGA, CPLD, PLD, ARM, AVR и т.д.)