Как избежать типичных багов встроенного ПО. ч.1
13/11/2011 - 16:05
Pavel Bobkov
Найэл Мерфи
Понимание ошибок программного и аппаратного обеспечения на примере других встраиваемых систем может помочь Вам идентифицировать, диагностировать и исправить ошибки в своей собственной системе.
Знаменитые ошибки – это своего рода военные истории разработчика ПО. В то время как остальные люди предпочли бы толочь воду в ступе, чем слушать историю, которая заканчивается словами "... и затем я понял, что эта переменная должна была быть 16-разрядным счетчиком, ха, ха, ха!", другим инженерам нравится слушать рассказы о злых шутках, которые сыграл с ними код. В этой статье мы исследуем наиболее коварные ошибки, с которыми я столкнулся за эти годы - иногда как автор, иногда как мастер по отладке, а иногда как заинтересованный наблюдатель.
Планировщик
02/11/2011 - 14:05
Pavel Bobkov
Стандартный путь построения программ для микроконтроллеров основывается на применении так называемого суперлупа (superloop). Он представляет собой бесконечный цикл, в теле которого запускаются различные функции. Функции могут запускаться постоянно или в случае выполнения каких-то условий, например установки флагов.
Программы, построенные на таком принципе, обычно используются для простых приложений с небольшим количеством задач, и в которых нет требований к таймингам.
Другой способ организации микроконтроллерных программ основан на применении планировщиков. Такие программы лучше структурированы, их проще модифицировать и они позволяют задавать время запуска задач.
В этой статье мы рассмотрим один из вариантов реализации простого планировщика.
Библиотека для опроса матричной клавиатуры 4x4 и 3х4
13/10/2011 - 05:03
Pavel Bobkov
Tagged under
Написал программный модуль для опроса матричной клавиатуры.
Особенности модуля:
Особенности модуля:
- простая интеграция с готовым проектом
- поддержка всех микроконтроллеров семейства mega
- возможность использования с любым из трех компиляторов IAR, GCC, CodeVision,
- поддержка клавиатур 4х4 и 3х4
- поддержка работы на общей шине
- возможность подключения к одному или двумя портами мк
- программная антидребезговая защита
- возможность установки произвольных кодов кнопок
1-Wire. Работа с DS18B20. Использование двух датчиков. Часть 4
24/09/2011 - 12:07
Pavel Bobkov
Одно из преимуществ 1-Wire интерфейса заключается в том, что он позволяет организовать сеть из нескольких устройств. До сих пор мы не использовали эту возможность и рассматривали работу только с одним датчиком. Мы разобрались, как подключить Atmel`овскую библиотеку к проекту, как в DS18B20 запустить преобразование температуры, как считывать ее и выводить на дисплей. Настало время перейти к следующему этапу работы – коммуникация с несколькими датчиками на одной 1-Wire шине.
Учебный курс AVR. Использование внешних прерываний в AVR
14/09/2011 - 17:38
Pavel Bobkov
Tagged under
Микроконтроллер общается с внешним миром посредством портов ввода/вывода. Порт представляет собой совокупность выводов микроконтроллера объединенных в группу. Каждый вывод порта можно независимо от других выводов конфигурировать на вход или на выход. Также многие выводы микроконтроллеров AVR имеют альтернативные функции. Одна из таких функций – это прерывание по изменению состояния вывода, так называемое внешнее прерывание. Об этом прерывании мы сегодня и поговорим.