Воскресенье, 21 ноября 2010 22:24
Применение директивы #error
Найджел Джонс
Одна из наименее используемых, но потенциально наиболее полезных директив препроцессора Си - это #error. В этой статье мы рассмотрим пару интересных способов применения #error, которые пригодятся вам при разработке программного обеспечения для встраиваемых систем.
Директива препроцессора #error относится к нововведениям Standart C (стандарт 1989 года). Синтаксис ее довольно простой:
#error <error message>
<error message> - может состоять из любого печатного текста и его даже не обязательно заключать в кавычки. Технически, сообщение можно опустить, однако особого смысла в этом нет.
Когда препроцессор Си встречает директиву #error, процесс компиляции останавливается и пользователю выдается сообщение. Обычно оно выглядит так:
Filename(line_number): Error!
Ennnn: <error message>
Где Filename - это имя исходного файла, line_number – номер строки, где находится директива #error, и Ennnn – код ошибки компилятора. Таким образом, сообщение #error ничем не отличается от обычных сообщений компилятора об ошибках.
Published in
Программирование AVR
Воскресенье, 24 января 2010 21:55
Организация программ. Событийная система (Event driven system)
Вопросы организации программ встраиваемых систем довольно скудно освещены в отечественной литературе. Поэтому у начинающих программистов микроконтроллеров рано или поздно возникают проблемы при написании больших проектов.
Стандартный подход к построению микроконтроллерных программ сводится к использованию бесконечного цикла, внутри которого происходит опрос флагов, и вызываются разные функции. Однако, такая программа не наглядна, и ее сложно модифицировать.
Организация программы в виде событийной системы (event driven system) лишена этих недостатков, позволяет реализовывать сложную логику, и не так “тяжеловесна” как операционные системы (RTOS). В этой статья мы разберемся с принципом ее работы и рассмотрим простой вариант ее реализации.
Published in
Программирование AVR
Суббота, 19 декабря 2009 00:24
Учебный курс. Подключение lcd к микроконтроллеру. Добавляем поддержку 4-ех разрядной шины
Микроконтроллер может “общаться” с lcd по 8-ми или 4-ех разрядной шине данных. Первый вариант более простой, поэтому мы с него и начали, второй посложнее, но позволяет сэкономить 4 вывода микроконтроллера.
Давайте разберемся чем отличается это подключение, и добавим в нашу библиотеку поддержку 4-ех разрядной шины.
Published in
Программирование AVR
Воскресенье, 25 октября 2009 23:02
Программные таймеры. Часть 2. Еще один пример использования
С помощью описанной в предыдущей статье простой библиотеки программных таймеров, можно легко организовать управление подсветкой LCD дисплея. Учитывая ее большое энергопотребление, неплохо бы включать подсветку только на время работы с устройством. Давишь на кнопки - подсветка горит, перестаешь - она гаснет. Реализовать это можно следующим образом. Нажатие на любую кнопку - зажигает подсветку и запускает таймер. Пока таймер считает, нажатия на кнопки вызывают его перезапуск. Если в течении заданного времени ни одна кнопка не была нажата, таймер срабатывает и гасит подсветку.
Published in
Программирование AVR