avr

Библиотека AVR для работы с 1-wire датчиком температуры DS18B20

При работе с датчиком по шине (да, да один провод - тоже шина) 1-wire следует особое внимание уделять временным задержкам.
Благо для AVR соответствующие функции написаны практически для всех IDE.

Работу с 1-wire я описывал, поэтому заострять внимание не будем..

Работа с символьным ЖК индикатором wh1602 на AVR

Я уже писал о работе с символьным ЖК индикатором на stm32 микроконтроллерах. Та статья получилась очень обзорной да и работа велась по восьмибитной шине. Таким образом я предлагаю вам бегло ознакомиться с предыдущей статьей, а уже потом перейти к этой.

Прошиваем первый живой контроллер AVR ATmega8

Уже есть статья о том как прошить первый stm32 контроллер. Но если в STM всё довольно понятно при наличии отладочной платы, то с AVR контроллерами сложилось иначе.

Задержка на МК AVR ATmega на asm

Как вы понимаете задержка в микроконтроллерном программировании весч не просто нужная, а просто необходимая.

И если написать на C может и дурак (в виде цикла конечно), то на asm не все начинающие..

Итак. Задержка делается путём реализации вложенного цикла.

Нам понадобиться 2 регистра и немного команд из набора ассемблера для AVR.

При помощи директив ассемблера зададим 2 параметра. Количество проходов внешнего и внутренного циклов.

Первый проект на ассемблере AVR ATmega в AVR Studio

Так уж сложилось, что к большинству статей я прикладываю исходники в виде проекта, или схему или ещё чего... Долго думал, что же "приложить" к этой статье.. Ох уж этот асм..

Проект на языке ассемблера для AVR контроллеров создать не особо сложно (утверждение касается только этого - "пилотного" проекта). Буду предполагать, что читатель знаком с основами языка ассемблера, и различает команды от директив.

Управление семисегментным индикатором при помощи SPI (сдвигового регистра 74hc595)

Часто возникает необходимость выводить данные на дисплей. И к сожалению не всегда есть возможность делать это напрямую. Ведь для управления семисегментным индикатором необходимо ещё больше ног чем для LCD дисплея.

Семисегментный индикатор

Рассмотрим схему индикатора:

схема индикатора

Прерывание на контроллере AVR в Atmel AVR Studio

Первым делом о том что такое прерывание.
Прерывание ( interrupt ) - это своеобразная функция, которая будет выполнена при поступлении сигнала на какой нибудь вход контроллера.
При работе в AVR Studio прерывания создаются при помощи макросов ISR() , SIGNAL() и INTERRUPT(). Они помечают некоторую функцию как обработчик прерывания. Их различие в том, что INTERRUPT() и ISR() определяют функцию обработчик для случая, когда разрешено общее прерывание (обработчик может быть прерван), а SIGNAL() для случая когда общее прерывание запрещено.

Моргаем портами контроллера AVR или программируем в Atmel AVR Studio

Эта статья подойдёт новичкам, которые только делают первые шаги.

Нам понадобится:
Atmel AVR Studio - для программирование
Proteus - для симуляции

Открываем студию. Видим привычное для пользователей Microsoft Visual Studio окно.

Жмём Файл - Новый проект

Создаём "C Executable Project". Задаём имя и жмём ок.
Теперь перед вами окно выбора контроллера:

Программируем первый AVR контроллер [ AtMega8 ]

Для всего нижеизложенного нам понадобится:

  • CodeVisionAvr - для компиляции программы контролера
  • Proteus - для симуляции

Если у вас нет этих программ лучше скачайте именно их. В других всё может кардинально отличатся.
Немного для понимания процесса.
Тут вы не найдёте теоретических сведений о контроллерах и правильном их программировании. Это всего навсего хелловорд в мире контроллеров.
Мы запрограммируем контроллер, который будет мигать диодом по заданной программе.

Схема: