Многие начинающие программеры микроконтроллеров, использующие в своих девайсах жидкокристаллические экранчики, рано или поздно задаются вопросом создания меню. Сия учесть когда-то постигла и меня, однако найти более менее вменяемого руководства по этой теме я не смог. Пришлось включать голову и действовать методом проб и ошибок. В результате я попробовал несколько вариантов решения этой задачи. Одному из них посвящена эта статья. Надеюсь, это сэкономит вам время и обогатит ваш технический арсенал.

   При отладке встраиваемых приложений, наиболее сложно отловить ошибки,  проявляющие себя не постоянно, а лишь время от времени. Одна из причин подобных багов: переменные, доступ к которым осуществляется асинхронно. Такие переменные должны быть правильно определены, и иметь соответствующую защиту.

   Микроконтроллеры AVR имеют в своем составе целую тучу периферийных устройств (таймеры/счетчики, аналого-цифровой преобразователь, аналоговый компаратор, асинхронный приемопередатчик…и т.д). Мощь микроконтроллера в том, что все эти устройства могут работать параллельно и независимо друг от друга, а также параллельно выполняемой программе. Каждое периферийное устройство может вызывать прерывание по наступлению определенного события. Понятие прерывания мы сегодня и будем разбирать.

Авторизация

    Сегодня устранил некоторые проблемы с авторизацией. Теперь все работает. Тем кто зарегистрировался и не получил письмо для активации, я активировал учетную запись вручную. Для смены пароля можно воспользоваться ссылкой - "Забыли пароль?"
   Добавил карту сайта и ссылки.

   При программировании микроконтроллеров постоянно приходится работать с битами. Устанавливать их, сбрасывать,  проверять их наличие в том или ином регистре. В AVR ассемблере для этих целей существует целый ряд команд. Во-первых, это группа команд операций с битами – они предназначены для установки или сброса битов в различных регистрах микроконтроллера, а во-вторых, группа команд передачи управления – они предназначены для организации ветвлений программ. В языке Си естественно нет подобных команд, поэтому у начинающих программистов часто возникает вопрос, а как в Си работать с битами. Эту тему мы сейчас и будем разбирать.