Среда, 29 сентября 2010 18:12
scmRTOS для AVR. Первая программа
В предыдущей статье по scmRTOS мы создали в IARe некую заготовку. Теперь на ее основе мы напишем полноценную программу для микроконтроллера AVR. Программа будет простая — два светодиода моргающих с разной частотой. Однако даже для ее реализации придется напрячь извилины и разобраться с основными моментами использования операционной системы.
Published in
Операционные системы реального времени
Вторник, 27 апреля 2010 21:24
Учебный курс. Семисегментный индикатор. Динамическая индикация
Для отображения цифровой информации в системах на базе микроконтроллеров используются светодиодные семисегментные индикаторы. Они просты в управлении, имеет высокую яркость, широкий диапазон рабочих температур и низкую стоимость. К недостатком светодиодных индикаторов относятся – скудные возможности по выводу буквенной информации, высокое энергопотребление и отсутствие управляющего контроллера.
Светодиодный семисегментный индикатор представляет собой группу светодиодов расположенных в определенном порядке и объединенных конструктивно. Зажигая одновременно несколько светодиодов можно формировать на индикаторе символы цифр.
Published in
Программирование AVR
Вторник, 19 января 2010 07:33
Поведение целочисленных типов
Будучи программистом, вам не нужно полностью знать ISO/ANSI C стандарт. Можно создавать довольно сложные приложения на Си, не зная всех деталей. Однако, стандарт – лучший помощник, когда вы разбираетесь в менее очевидных частях языка и исследуете его закоулки.
Когда вы читаете стандарт, некоторые моменты выглядят совершенно ясными на бумаге, но когда вы компилирует свой код, он так переворачивается, что делает все, кроме того, что вы хотели. Некоторые части стандарта требуют анализа, прежде чем вы полностью поймете их поведение и сможете использовать в своих интересах.
Published in
Программирование AVR
Четверг, 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
Суббота, 07 ноября 2009 21:29
Учебный курс. Подключение lcd к микроконтроллеру. Знакомимся с указателями. Добавляем функцию вывода строки
Что представляет из себя строка? Это всего лишь массив, последним элементом которого является нулевой символ ‘\0’. Он добавляется компилятором автоматически и служит маркером конца строки.
Объявить строку во флэш памяти микроконтроллера AVR можно следующим образом:
Published in
Программирование AVR
Суббота, 03 октября 2009 21:00
Учебный курс. Что такое массив. Микроконтроллер играет мелодию.
В прошлый раз мы научились пользоваться таймером Т0 и заставили микроконтроллер подавать голос. Хоть мы и использовали при этом прерывания, суть программы мало чем отличалась от программы моргающего светодиода. Предлагаю усложнить задачу и заставить микроконтроллер играть мелодию. Попутно познакомимся с массивом и научимся его использовать.
Published in
Программирование AVR
Четверг, 17 сентября 2009 21:00
Учебный курс. Понятие переменной. Побитовый сдвиг влево. Побитовая инверсия. Оператор ветвления if...else.
Мы отдали дань уважения традициям, получили первое представление о программе на Си, познакомились с IARом. Сегодня мы углубим наши познания в Си. Наша следующая задача - написать программу бегущего светодиода.
Published in
Программирование AVR