Засыпкин С.В.

Лаборатория электроники и программирования

Электронный журнал с приложениями

№ 13

© Засыпкин С.В., 2011-2014

На главную страницу

 

Содержание

 

1. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с акселерометром LIS302DK.

Приведен пример программы для работы с акселерометром  LIS302DK [10]. Для работы с акселерометром используется интерфейс SPI, для передачи данных ускорений  - интерфейс UART.  После инициализации интерфейсов программа циклически опрашивает флаг готовности ускорений, считывает их и передает по UART в символьном виде. Для имен регистров и битов сделаны символьные имена для лучшей читаемости программы. Примеры даны для компилятора «MikroC PRO for ARM» [4].

 

2. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с RTC. Установка времени по UART.

В RTC необходимо устанавливать начальное время. Для этого можно использовать какой-либо интерфейс. Рассмотрен пример, когда время устанавливается с помощью UART.  Примеры программ даны для компилятора  «CooCox®»  [4].

 

3. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с RTC. Будильники.

                Рассмотрена работа с будильниками RTC. Прерывания будильников имеют свои особенности и требуют соответствующей настройки. Приведены примеры программ настройки будильников, организация прерываний. Примеры программ даны для компилятора  «CooCox®»  [4].

 

4. Программирование на языке С на примере микроконтроллера ATmega168.  Сторожевой таймер.

Рассмотрена работа сторожевого таймера (WDT). Сторожевой таймер предназначен для защиты программы от зависания. Он представляет из себя отдельный  счетчик со своим RC генератором. При переполнении этого счетчика осуществляется сброс микроконтроллера. Существует специальная команда, которая позволяет сбросить счетчик WDT, не допустив таким образом сброса микроконтроллера. Эту команду необходимо добавлять в разные части основного цикла программы, чтобы контролировать время выполнения той или иной части программы.

 

5. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Режимы пониженного энергопотребления. Выход по кнопке и таймеру RTC.

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

Приведены примеры для компилятора  «CooCox®»  [4].

 

6. Программирование на языке С на примере микроконтроллера STM32F051R8T6. Работа с кнопкой.

Рассмотрены 4 варианта работы с кнопкой, в том числе обработка дребезга контактов и работа кнопки с прерыванием.

Приведены примеры для компилятора  «CooCox®»  [4].

 

7. Программирование на языке С на примере микроконтроллера ATmega168.  Передача данных от одного микроконтроллера к другому по интерфейсу SPI. Прием данных с ведомого.

                Рассмотрим, как передавать данные от ведомого к мастеру. Данная задача может возникнуть например при реализации какого-либо датчика на микроконтроллере. За основу возьмем программы и макет из 12 номера журнала (статьи 1 и 3).

 

8. Программирование на языке С на примере микроконтроллера ATmega168.  Работа с акселерометром MMA7660.

                Рассмотрим, как получать  данные от акселерометра MMA7660 [4].  Данный акселерометр позволяет измерять ускорения до +-1,5g по трем осям. Результат преобразования представлен 6-битным числом со знаком. Число расположено в младших битах регистра, поэтому, чтобы получить нужное значение для дальнейшей обработки, его необходимо преобразовать …

На фото ниже приведен результат работы программы (в верхней строке дисплея отображаются координаты, а в нижней – оцифрованные значения ускорений по координатам):

 

9. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с символьным LCD модулем.

Пример программы дан для компилятора  «CooCox®»  [4].

 

 

10. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Поиск ошибок в программе с прерываниями.

При отладке программы с прерываниями можно выделить два критерия – работа самого прерывания и работа остальной программы.

Приведена таблица наблюдаемых ситуаций и возможных причин неправильной работы программы при отладке программы с прерываниями.