Среда, 29 сентября 2010 18:12
scmRTOS для AVR. Первая программа
В предыдущей статье по scmRTOS мы создали в IARe некую заготовку. Теперь на ее основе мы напишем полноценную программу для микроконтроллера AVR. Программа будет простая — два светодиода моргающих с разной частотой. Однако даже для ее реализации придется напрячь извилины и разобраться с основными моментами использования операционной системы.
Published in
Операционные системы реального времени
Вторник, 10 августа 2010 20:04
scmRTOS для AVR. "Установка". Вариант для IAR`a
Решил немного разобраться с операционными системами реального времени (ОСРВ, RTOS). Не то чтобы в этом была какая-то острая нужда, это скорее спортивный интерес. Опыта использования подобных систем не имею, а значит, буду учиться вместе с вами.
О том, что такое ОСРВ, зачем она нужна и где используется, я писать не буду. Есть несколько переведенных статей на эту тему, одну я уже выложил, остальные ждут своего часа.
Операционных систем для 8-ми разрядных микроконтроллеров существует довольно много, но, проведя маркетинговое исследование, я остановил свой выбор на scmRTOS. Это многозадачная вытесняющая ОСРВ, разработанная для микроконтроллеров с маленьким объемом ОЗУ. Она бесплатная, к ней есть документация на русском языке, а также порты под разные типы микроконтроллеров и компиляторов. Написана она на Си++ и частично на ассемблере, надеюсь, это вас не пугает.
Published in
Операционные системы реального времени
Среда, 24 марта 2010 23:17
Три состояния одного джампера. Еще один способ экономии выводов
В некоторых устройствах на микроконтроллерах для задания настроек используются джамперы/переключатели. Обычно они подключены аналогично кнопке и имеют два возможных состояния – HIGH и LOW. Если джампера нет, вывод микроконтроллера с помощью встроенного резистора “подтянут к плюсу питания”. Когда джампер подключен, вывод микроконтроллера замкнут на землю.
Максимальное число различных установок, которые мы можем получить в этом случае = 2 в степени N, где N – число задействованных выводов. Существует ли простой способ увеличить число возможных комбинаций, не используя для этого дополнительные выводы микроконтроллера? Оказывается да!
Published in
Как подключить к микроконтроллеру
Четверг, 07 января 2010 21:39
Учебный курс. Организация обмена по USART `у с использованием кольцевого буфера
Реализация обмена данными по USART`у, которую мы рассматривали в предыдущей статье имеет некоторые недостатки. Функция отправки символа перед тем как инициировать передачу выполняет опрос флага UDRE регистра UCSRA в цикле while. А это значит, что микроконтроллер тратит свое драгоценное время на пустую работу. Прием данных осуществляется в однобайтовый буфер, при этом предыдущие данные затираются, если микроконтроллер не успевает их считывать.
Для простых приложений такого подхода вполне достаточно, но для сложных гораздо эффективнее организовать передачу (прием) данных используя кольцевой (циклический) буфер.
Published in
Программирование AVR
Суббота, 26 декабря 2009 23:46
Учебный курс. UART/USART. Получение первых результатов. Сопрягаем микроконтроллер с компьютером
Микроконтроллер ATmega8535 имеет в своем составе модуль универсального синхронно/асинхронного приемопередатчика - USART. С его помощью между компьютером и микроконтроллером можно организовать обмен данными по последовательному каналу. Раньше в компьютерах для этих целей использовались COM порты, однако на современных машинах они уже большая редкость. Если на вашем компьютере все-таки есть такой порт, то для подключения микроконтроллера, понадобится преобразователь уровней ТТЛ – RS232. Его можно собрать на микросхеме MAX232.
Published in
Программирование AVR
Суббота, 19 декабря 2009 00:24
Учебный курс. Подключение lcd к микроконтроллеру. Добавляем поддержку 4-ех разрядной шины
Микроконтроллер может “общаться” с lcd по 8-ми или 4-ех разрядной шине данных. Первый вариант более простой, поэтому мы с него и начали, второй посложнее, но позволяет сэкономить 4 вывода микроконтроллера.
Давайте разберемся чем отличается это подключение, и добавим в нашу библиотеку поддержку 4-ех разрядной шины.
Published in
Программирование AVR
Четверг, 26 ноября 2009 21:00
Учебный курс. Опрос кнопок
В своих микроконтроллерных поделках я постоянно использую кнопки. Поэтому написал простенький драйвер для работы с ними. В текущей версии драйвер заточен под четыре кнопки, но его довольно легко переделать. В этой статье я опишу содержимое файлов драйвера, а в следующей разберу какой-нибудь практический пример.
Published in
Программирование AVR
Четверг, 19 ноября 2009 22:12
Учебный курс. Подключение энкодера. Типовая структура простой программы. Генератор на AVR.
Принцип действия, схема включения и исходник библиотеки для работы с инкрементным энкодером уже рассматривался мной в одной из статей. Сегодня мы поговорим о практическом применении энкодера. В качестве примера я выбрал программу генератора прямоугольного сигнала с диапазоном рабочих частот 1 – 100 Гц.
Published in
Программирование AVR
Пятница, 13 ноября 2009 23:22
Учебный курс. Подключение lcd к микроконтроллеру. Разбираемся с флагом занятости.
Для выполнения команд или вывода данных контроллеру символьного lcd требуется определенное время. Поэтому в конце функций записи мы использовали программные задержки в 40 us. Это вполне работоспособное решение, однако не единственно возможное.
Контроллер символьного lcd имеет флаг занятости BF. Он устанавливается в 1, когда контроллер выполняет внутреннюю работу и сбрасывается, когда контроллер освобождается. Вместо программной задержки можно опрашивать состояние этого флага и запускать цикл записи команд/данных, только когда флаг сброшен.
Published in
Программирование AVR
Понедельник, 02 ноября 2009 21:00
Учебный курс. Подключение LCD к микроконтроллеру. Разбиваем программу на модули
Следующим этапом работы над нашей программой будет разбиение ее на модули. Мы разделим программу на 2 части – основная программа и библиотека для работы с дисплеем. Зачем нужно разбивать программу на модули, и какие это дает преимущества?
Published in
Программирование AVR