Микроконтроллеры

Работаем с простыми таймерами STM32 F4 discovery

В любом современном контроллере есть таймеры. В этой статье речь пойдёт о простых (базовых) таймерах stm32f4 discovery.
Это обычные таймеры. Они 16 битные с автоматической перезагрузкой. Кроме того имеется 16 битный программируемый делитель частоты. Есть возможность генерирования прерывания по переполнению счётчика и/или запросу DMA.

Приступим. Как и раньше я пользуюсь Eclipse + st-util в ubuntu linux

Первым делом подключаем заголовки:

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

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

Ставим Eclipse + ARM plugin + stlink utility для работы с STM32F4 DISCOVERY в Linux

Недавно приобрел не безызвестную отладочную плату STM32F4.
Порадоваля дефолтной прошивке и приступил к настройке IDE для разработки.

Свой выбор я остановил на связки Eclipse + ARM plugin + Sourcery CodeBench.
Плюсы такого решение: бесплатно, много примеров
минусы: ставить всё придётся ручками и отдельно.

Выводим строку "Hello world!" на LCD экран - [ AVR AtMega8 ]

Сейчас мы выведем нашу первую строку на LCD экран при помощи микроконтроллера AVR AtMega8.
Кодить будем на Си в AVRCodeVision. Симулировать результат в ISIS.

Собираем схему:

Ну а теперь открываем AVRCodeVision, создаём новый проект ну и кодим:

Моргаем диодами при нажатии кнопки на stm32f4-discovery [ARM Cortex]

Речь пойдёт о программе на МК STM32 которая позволит нам зажигать диоды при нажатии кнопки.

Я пользуюсь отладочной платой STM32F4 discovery. Очёнь удобно и быстро. + не дорого

Приступим.
Я пользуюсь Eclipse + ST utility + gdb

Первым делом подключаем заголовочный файл для работы с контроллерами stm32f4 :

#include <stm32f4xx.h>

Как подключать либы рассказывать не буду.
Обзовём константу для управления портом D (там наши диоды) новым именем:

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

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

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

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

Схема:

Прерывания на stm32 f4 discovery - зажигаем диоды по кругу - arm

Продолжаем знакомиться с stm32f4 discovery.
На этот раз речь пойдёт о прерываниях.
Создадим программу которая будет зажигать диоды "по кругу" т.е. при нажатии на кнопку срабатывает прерывание и зажигается следующий диод..

Как и раньше я использую eclipse + arm plugin + st-util

Первым делом инклуды:

Прошивка внешнего контроллера при помощи stm32 discovery - SWD

Для создания минимального проекта нам понадобится: контроллер stm32 ( у меня stm32f103 ), жменя проводов, светодиод (для проверки).
Мы не будем вешать даже кварц, чтобы не усложнять процесс.
Очень удобно использовать вот такую плату-переходник с LQFP:

Стоит она в районе 1$. Зато не надо травить крохотные дорожки.
Собираем вот такую схему (для stm32f103 48ног):

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

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

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

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

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

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