Среда, 14 сентября 2011 17:38
Учебный курс AVR. Использование внешних прерываний в AVR
Микроконтроллер общается с внешним миром посредством портов ввода/вывода. Порт представляет собой совокупность выводов микроконтроллера объединенных в группу. Каждый вывод порта можно независимо от других выводов конфигурировать на вход или на выход. Также многие выводы микроконтроллеров AVR имеют альтернативные функции. Одна из таких функций – это прерывание по изменению состояния вывода, так называемое внешнее прерывание. Об этом прерывании мы сегодня и поговорим.
Published in
Программирование AVR
Суббота, 27 августа 2011 08:08
Подключение графического дисплея МТ12232-А к микроконтроллеру AVR
Даже монохромные графические дисплеи, не говоря уже о цветных, обладают на порядок большими возможностями по выводу информации, по сравнению со знакосинтезирующими. Графические дисплеи позволяют выводить изображения и текстовую информацию, используя произвольный шрифт. Кроме того изображение можно выводить в любой точке дисплея, а не только в отведенных знакоместах.
За преимущества графических дисплеев приходиться платить деньгами и ресурсами микроконтроллера. Как правило графические дисплеи дороже знакосинтезирующих и у них нет знакогенератора и встроенных функций рисования. Поэтому вся работу по выводу текста и рисованию графики приходится выполнять микроконтроллеру.
В этой статье мы рассмотрим подключение и работу с графическим дисплеем МТ12232-А. Он выпускается отечественной фирмой МЭЛТ, прост в управлении и является одним из самых доступных по цене.
Published in
Как подключить к микроконтроллеру
Воскресенье, 01 мая 2011 12:03
AVR221: Дискретный ПИД-регулятор
Особенности
• Простой дискретный алгоритм ПИД регулятора
• Поддерживается всеми микроконтроллерами AVR
• ПИД функция использует 534 байта flash памяти и 877 циклов процессора (IAR — low size оптимизация)
1 Введение
Это руководство описывает простую реализацию дискретного пропорционально-интегрально-дифференциального (ПИД) контроллера.
При работе с приложениями, где выходной сигнал системы должен изменяться в соответствии с опорным значением, требуется алгоритм управления. Примерами таких приложений являются блок управления двигателем, блок управления температурой, давлением, расходом жидкости, скорости, силы или других переменных. ПИД-регулятор может быть использован для управления любой измеряемой переменной.
Published in
Программирование AVR
Вторник, 15 марта 2011 18:36
Генерация звука с помощью AVR. Озвучь свой девайс
Написал программный модуль, позволяющий добавить функцию воспроизведения мелодий или последовательностей звуков практически в любой проект на микроконтроллере AVR.
Особенности модуля:
- простая интеграция с готовым проектом
- задействован только 8-ми разрядный таймер т2, при этом остается возможность использовать его для опроса или формирования временных интервалов
- модуль настраивается практически на любую частоту тактового генератора
- высота нот задается в виде символических констант (С0, А2 и т.д) или в Герцах
- длительности задаются в стандартном виде (четверти, восьмые и т.д.) или в миллисекундах
- имеется возможность задавать темп воспроизведения мелодии и количество ее повторений
- в процессе воспроизведения мелодия может быть поставлена на паузу
Published in
Программирование AVR
Воскресенье, 06 марта 2011 19:00
Частотомер на микроконтроллере
В одной из предыдущих статей, посвященных изучению микроконтроллеров AVR, на примере проекта частотомера мы рассмотрели использование 16-ти разрядного таймера/счетчика Т1 и прерывания по событию захват. В качестве дополнения к этому материалу, предлагаю улучшенную версию частотомера. В этом проекте тоже используется блок захвата и дополнительно еще задействован тактовый вход 8-ми разрядного таймера.
Published in
Программирование AVR
Среда, 23 февраля 2011 00:05
Автомат освещения на AVR
Мысль о разработке этого устройства посетила меня, когда, очередной раз заходя вечером в подъезд, я задумался, а почему свет в подъезде горит всю ночь? Для кого?
А что если поставить такое устройство автоматики, которое бы включало освещение при входе в подъезд автоматически или при инициации этого устройства человеком. Например, посредством кнопки или размыкания контактов геркона, установленного на входной двери. А по прошествии определенного времени, когда человек уже вошел в квартиру, само бы выключало его. Ведь тема экономии электроэнергии так актуальна в наше время!
Published in
Проекты
Суббота, 19 февраля 2011 21:45
1-Wire. Работа с DS18B20. Часть 3
Переходим от теории к практике. Наша задача — получить от датчика DS18B20 значение текущей температуры и вывести его на символьный lcd дисплей.
Published in
Программирование AVR
Воскресенье, 23 января 2011 21:11
1-Wire. Работа с DS18B20. Часть 2
Итак, у вас есть общее представление о том, как происходит обмен данными по 1-Wire шине и можно перейти к следующей части - как обратиться к DS18B20, как запустить процесс температурного преобразования датчика, как считать с него температуру, как установить температурное разрешение и т.д.
Последовательность операций для доступа к DS18B20 следующая:
1. Инициализация
2. Подача ROM команды
3. Подача функциональной команды DS18B20
Published in
Программирование AVR
Пятница, 31 декабря 2010 16:03
Си библиотека для работы с 1-Wire устройствами
Для работы с устройствами, поддерживающими 1-Wire протокол уже давным-давно написаны библиотеки. Поэтому нет смысла изобретать велосипед (лично я это уже делал, когда программировал на ассемблере) и писать что-то свое. На сайте фирмы ATMEL есть замечательный application note AVR318: Dallas 1-Wire, в котором рассмотрены два варианта реализации 1-Wire протокола на микроконтроллерах AVR – программная и аппаратная. Программная реализация позволяет использовать однопроводный протокол на любых микроконтроллерах. Аппаратная – только на тех, на которых есть модуль UART. Аппаратной поддержки 1-Wire протокола «в чистом виде» микроконтроллеры AVR не имеют, однако, используя модуль UART неким хитрым образом, эту поддержку можно организовать. К application note идет проект. Я взял из этого проекта исходные файлы библиотеки, добавил, изменил несколько функций и написал файл compilers.h, чтобы можно было использовать эту либу с любым из трех компиляторов – IAR AVR, GNU GCC (WINAVR), CodeVision.
Published in
Программирование AVR
Воскресенье, 12 декабря 2010 19:37
Библиотека для LCD с контроллерами ks0066 и hd44780
Подправил библиотеку для LCD, теперь она поддерживает контроллеры ks0066 и hd44780. Фишка в чем. Библиотека для hd44780 может работать и с ks0066, а вот библиотека для ks0066 с контроллером hitachi уже не работает. У этих контроллеров есть некоторое отличие в инициализации при использовании 4-ех разрядной шины. Вообщем я добавил несколько строк кода и заключил их в директивы условной компиляции, чтобы можно было выбирать тип контроллера. Код для hitachi чуть "потолще", а если будет использоваться контроллер ks0066 зачем нам лишние 40 байт кода.
Published in
Программирование AVR