Уроки программирования микроконтроллеров.
- Программирование микроконтроллеров. Урок 1
(Вводная часть) - Программирование микроконтроллеров. Урок 2 часть 1
(Программатор) - Программирование микроконтроллеров. Урок 2 часть 2
(Подключение микроконтроллера к компьютеру) -
Сделанный на предыдущем уроке программатор отлично работает с PonyProg 2000 (РР). Качаем программу и устанавливаем ее на свой компьютер.
- Программирование микроконтроллеров. Урок 3
(Установка CV_AVR и написание первой программы) -
На предыдущем уроке мы с вами подключили МК к компьютеру и научились загружать в него программу, а также читать и стирать память контроллера. Может случится так, что этого будет вполне достаточно т.к. в интернете полно реализованных проектов, для сборки которых только и надо смонтировать устройство и прошить прилагаемую к нему программу. Но я-то знаю, что мало кто хочет быть «обезьяной», таскающей билетики счастья, каждый видит себя «шарманщиком».
- Программирование микроконтроллеров. Урок 4
(IF ELSE) -
На прошлом занятии мы написали первую программу, которая зажгла для нас светодиод, а сегодня мы подключим кнопку к нашему контроллеру и всё узнаем об операторе ветвления «if». Это самый универсальный и часто используемый оператор. В союзе с «Goto» может организовывать любые циклы. Но т.к. оператор «Goto» у программистов не в почете и употреблять его нужно с большой осторожностью (для этого действительно имеются веские причины), в языке «Си» достаточно разных конструкций для того, чтобы обойтись без него.
- Программирование микроконтроллеров. Урок 5
(Переменные и арифметические операции) -
На прошлом занятии мы изучили оператор ветвления «if else». На этом уроке мы с его помощью сделаем так, чтобы наш светодиод не просто мог гореть, но и моргать. Никаких дополнительных переключений на макетной плате делать не требуется. Сегодня мы только программируем.
- Программирование микроконтроллеров. Урок 6
(Процедуры и функции, а также оператор ветвления «switch») -
На прошлом занятии мы изучили переменные и разобрались с арифметическими операциями. А сегодня мы разберемся с организацией процедур и функций. Но сначала я отвечу на вопрос прошлого урока. (Изменится ли частота переключения светодиода если мы включим в цикл W полезный код? И если измениться, то как и почему?) Да, при добавлении в цикл полезного кода частота переключения светодиода будет уменьшаться. Это связано со временем, затраченным на выполнения этого кода. И поверьте, если код будет объемным, то и замедление будет весьма существенным.
- Программирование микроконтроллеров. Урок 7
Задержка включения реле (повторяя пройденное) -
На прошлом занятии мы с вами научились делать подпрограммы и организовывать библиотеки, а по ходу еще и узнали о втором и последнем операторе ветвления «switch». Хороший оператор, но используется на порядок меньше чем «if». «IF наше всё!». На этом уроке мы закрепим пройденный материал организовав задержку для реле. При этом будем использовать светодиодную индикацию для контроля работы нашего устройства.
- Программирование микроконтроллеров. Урок 8
(Системы счисления) -
На прошлом занятии мы с вами повторили пройденный материал и сделали уже вполне рабочее устройство, которое может понадобиться в домашнем хозяйстве. Сегодня же мы практическое занятие посвятим наглядному отображению чисел в двоичной системе счисления.
- Программирование микроконтроллеров. Урок 9
(Заканчиваем с циклами и подключаем кнопку) -
На прошлом занятии мы с вами ознакомились с разными системами счисления. А сегодня просто программируем, закончим разбирать циклы и подключим кнопку так, чтобы она работала, как говорится, с толком и расстановкой. Т.е. так, как работает большинство кнопок, в устройствах, которые нас окружают.
- Программирование микроконтроллеров. Урок 10
(Поразрядные операции) -
На прошлом занятии мы с вами закончили изучение циклов, а также их возможности и применение дополнительных операторов досрочного выхода и пропуска итераций. Также, надеюсь, вы уяснили почему не рекомендуют применять оператор «goto». Ну и конечно подключили кнопку которая сегодня нам как раз пригодиться. К слову, до конца изучения основ «Си», осталось совсем чуть-чуть. В общем всего две темы. Первая - массивы, а вторую мы как раз сейчас разберем. На этом уроке мы посмотрим, как ведут себя переменные, когда к ним применяют битовые операции.
- Программирование микроконтроллеров. Урок 11
(Разберём программный ШИМ, а также сделаем светодиодную матрицу) -
На прошлом занятии мы с вами ознакомились с поразрядными операциями, а в качестве домашнего задания я предложил вам самостоятельно изучить ШИМ и попробовать, применяя знания, полученные на предыдущих уроках, запрограммировать контроллер, чтобы он выполнял функцию ШИМ регулятора.
- Программирование микроконтроллеров. Урок 12
(Подключение семисигментного индикатора) -
На прошлом занятии мы с вами ознакомились с возможностью программной организации ШИМ, а также сделали светодиодный куб для изучения массивов. Но т.к. тема динамической индикации, да и массивов в целом широка, я решил пока не использовать куб, а предложить вам начать изучение материала с более простых вещей. На мой взгляд подключение одиночного семисегментного индикатора к МК как раз задача для начинающих. Но мы не просто его подключим, а сделаем электронный кубик для настольных игр.
- Программирование микроконтроллеров. Урок 13
(Подключение трехсекционного семисегментного индикатора) -
На прошлом занятии мы с вами подключили к микроконтроллеру одну секцию семисегментного индикатора. Сегодня мы усложним себе задачу и подключим трехсекционный индикатор, а также напишем программу-обработчик для отображения цифр и небольших сообщений.
- Программирование микроконтроллеров. Урок 14
(Продолжаем изучать массивы. Подключение светодиодного кубика 3x3x3.) -
На прошлом занятии мы с вами подключили к микроконтроллеру трехсекционный семисегментный индикатор, а также написали программу-обработчик для отображения цифр и небольших сообщений. Работа обработчика базировалась на статическом массиве находящимся во флешь памяти. На этот раз мы подключим светодиодный кубик, который сделали на одиннадцатом уроке и поиграем в него, используя для этого массив, в котором данные будут меняться в процессе выполнения программы.
- Программирование микроконтроллеров. Урок 15
(Программируем конфигурационные ячейки и подстраиваем тактовую частоту внутреннего генератора.) -
На прошлом занятии мы с вами закончили знакомство с языком программирования (СИ) и теперь приступаем к более детальному изучению «железа». И, как водится, начнем с разгона нашего микроконтроллера.
- Программирование микроконтроллеров. Урок 16
(Прерывания, таймер/счетчик Т0 и предделители.) -
На прошлом занятии мы с вами разогнали наш МК и скорректировали частоту генератора. А сегодня мы познакомимся с прерываниями, которые вызывают разные устройства, находящиеся на "борту" микроконтроллера, и рассмотрим их работу на примере таймера/счетчика Т0.
- Программирование микроконтроллеров. Урок 17
(Интерфейс SPI, подключение дисплея Nokia 5110.) -
На прошлом занятии мы с вами научились пользоваться прерываниями и разобрали работу таймера/счетчика Т0. А сегодня мы разберем как работает интерфейс SPI и подключим к нашему контроллеру небольшой ЖК дисплей.
- Программирование микроконтроллеров. Урок 18
(Передача символов на дисплей Nokia 5110 и подключение энкодера к МК.) -
На прошлом занятии мы с вами научились передавать данные по SPI, а сегодня попробуем отобразить на нашем дисплее полезную информацию и за одно подключим к нашему МК самый универсальный и удобный управляющий элемент – энкодер.
- Программирование микроконтроллеров. Урок 19
(Работа таймера/счетчика Т2 в асинхронном режиме.) -
На прошлом занятии мы с вами подключили энкодер и отображали на дисплее Nokia 5110 разную информацию. Сегодня мы подключим к нашему МК часовой кварц и сделаем электронные часы. А для этого нам надо перевести работу счетчика/таймера Т2 в асинхронный режим.
- Программирование микроконтроллеров. Урок 20
(АЦП.) -
На прошлом занятии мы с вами подключили к нашему МК часовой кварц и сделали электронные часы. А на этом уроке мы поработаем с Аналого-Цифровым Преобразователем и сделаем простенький вольтметр.
- Программирование микроконтроллеров. Урок 21
(EEPROM.) -
На прошлом занятии мы с вами поигрались с АЦП и сделали вольтметр. А на этом уроке мы запишем данные в энергонезависимую память EEPROM и извлечем эти данные оттуда, а также рассмотрим некоторые нюансы, связанные с контролем питания МК.
- Программирование микроконтроллеров. Урок 22
(Аналоговый компаратор.) -
На прошлом уроке мы с вами разобрали энергонезависимую память EEPROM, а здесь быстренько посмотрим на работу аналогового компаратора, который, по-моему, можно найти во всех микроконтроллерах.
- Программирование микроконтроллеров. Урок 23
(Таймер/счетчик Т1.) -
На прошлом уроке мы с вами посмотрели, как работает аналоговый компаратор, а сегодня разберемся с таймером/счетчиком Т1 и познакомимся с одним из вариантов его работы. Ну а попутно сделаем ночник с плавной регулировкой яркости.