Lisitsin 0 11 октября, 2016 Опубликовано 11 октября, 2016 (изменено) · Жалоба Здравствуйте, уважаемые специалисты!!! Столкнулся с примитивнейшей проблемой. Заблудиться в трёх соснах намного сложнее, чем в трёх регистрах. Есть ATMEGA128A и кусок кода, разрешающий внешнее прерывание INT2 (PINC:2) по низкому уровню: OUT EIMSK,ZERO ; ZERO у меня всегда в нуле. Просто запрещаем все внешние прерывания LDI BUF,0X00 ; Этой командой настраиваем выработку всех прерываний STS EICRA,BUF ; (INT0...7) низким уровнем LDI BUF,0XFF ; Записью лог. 1 во все разряды сбрасываем все флаги прерываний OUT EIFR,BUF ; во флаговом регистре EIFR (если они вдруг были) LDI BUF,(1<<INT2) ; Этой командой OUT EIMSK,BUF ; разрешаем прерывание INT2 SEI ; Глобально разрешаем прерывания NOP NOP NOP NOP NOP Вот и всё. Проще некуда. И не работает, программа продолжает выполняться с нулём в разряде PINC:2 как будто так и должно быть Не понимаю в чём тут дело. Может, кто-то уже сталкивался с такой проблемой? https://vk.com/video142452557_456239045 Спасибо! Изменено 11 октября, 2016 пользователем IgorKossak [codebox] для длинного кода, [code] - для короткого! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aiwa 0 11 октября, 2016 Опубликовано 11 октября, 2016 · Жалоба В атмеловском талмуде на ATMega128A утверждается, что источником внешнего прерывания должна быть нога порта D, а не C. INT2/RXD1 – Port D, Bit 2 INT2, External Interrupt source 2. The PD2 pin can serve as an External Interrupt source to the MCU. RXD1, Receive Data (Data input pin for the USART1). When the USART1 receiver is enabled this pin is configured as an input regardless of the value of DDD2. When the USART forces this pin to be an input, the pull-up can still be controlled by the PORTD2 bit. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lisitsin 0 11 октября, 2016 Опубликовано 11 октября, 2016 · Жалоба В атмеловском талмуде на ATMega128A утверждается, что источником внешнего прерывания должна быть нога порта D, а не C. СПАСИБО огромное! Похже, мне надо внимательнее курить datasheet ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться