Перейдем к модификации описанного программного UART`a под конкретный камушек. Поскольку пишу я в основном про 8-ми разрядные AVR, то эти контроллеры и будем рассматривать.
Во всех микроконтроллерах семейства mega есть аппаратный модуль UART, а вот в микроконтроллерах семейства tiny нет. По идее программный UART может потребоваться именно для младшего семейства, но не исключаю возможность использования этого кода и в mega`ах. Пути эмбеддера неисповедимы.
Проекты написаны в двух вариантах – для ATTiny45 и для ATmega16. Впрочем, отличия там очень незначительные и касаются только инициализации и прерывания задействованного таймера.
Подробнее... Комментарии (2)
Иногда возникает ситуация, когда аппаратных ресурсов микроконтроллера не хватает или требуемый ресурс в его составе отсутствует. Решить эту проблему можно двумя способами – заменить используемый микроконтроллер на другой или реализовать требуемый ресурс программно. Оба способа имеют свои достоинства и недостатки, однако второй вариант часто более предпочтительный, а иногда и единственно возможный. Например, как в случае с 1-Wire интерфейсом, который не поддерживается аппаратно ни в одном 8-ми разрядном микроконтроллере AVR. В этой статье рассмотрена реализация программного UART`а, которую можно модифицировать под любой микроконтроллер, программируемый на Си.
Найэл Мерфи Понимание ошибок программного и аппаратного обеспечения на примере других встраиваемых систем может помочь Вам идентифицировать, диагностировать и исправить ошибки в своей собственной системе. Знаменитые ошибки – это своего рода военные истории разработчика ПО. В то время как остальные люди предпочли бы толочь воду в ступе, чем слушать историю, которая заканчивается словами "... и затем я понял, что эта переменная должна была быть 16-разрядным счетчиком, ха, ха, ха!", другим инженерам нравится слушать рассказы о злых шутках, которые сыграл с ними код. В этой статье мы исследуем наиболее коварные ошибки, с которыми я столкнулся за эти годы - иногда как автор, иногда как мастер по отладке, а иногда как заинтересованный наблюдатель.
Стандартный путь построения программ для микроконтроллеров основывается на применении так называемого суперлупа (superloop). Он представляет собой бесконечный цикл, в теле которого запускаются различные функции. Функции могут запускаться постоянно или в случае выполнения каких-то условий, например установки флагов. Программы, построенные на таком принципе, обычно используются для простых приложений с небольшим количеством задач, и в которых нет требований к таймингам. Другой способ организации микроконтроллерных программ основан на применении планировщиков. Такие программы лучше структурированы, их проще модифицировать и они позволяют задавать время запуска задач. В этой статье мы рассмотрим один из вариантов реализации простого планировщика.
Написал программный модуль для опроса матричной клавиатуры. Особенности модуля: - простая интеграция с готовым проектом - поддержка всех микроконтроллеров семейства mega - возможность использования с любым из трех компиляторов IAR, GCC, CodeVision, - поддержка клавиатур 4х4 и 3х4 - поддержка работы на общей шине - возможность подключения к одному или двумя портами мк - программная антидребезговая защита - возможность установки произвольных кодов кнопок
|


Найэл Мерфи
Написал программный модуль для опроса матричной клавиатуры.