Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Анонсы журнала "Лаборатория электроники и программирования" Новые статьи 15 номера


3. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с CAN. Передача данных.

                Рассмотрим работу с интерфейсом CAN.  Данный интерфейс нашел широкое применение в автомобильной электронике и промышленном оборудовании благодаря заложенным в него свойствам высокой надежности.

Для работы с модулем необходимо подключить микросхему физического уровня CAN для передачи/приема сигналов. Схема подключения следующая:

                Пример программы сделан с использованием библиотеки «CAN Library» [4] для компилятора  «MikroC PRO for ARM» [4].

 

4. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с CAN. Прием данных.

                Рассмотрим пример программы приема данных по шине CAN.  Пример программы сделан с использованием библиотеки «CAN Library» [4] для компилятора  «MikroC PRO for ARM» [4]. Настройки скорости как и в предыдущей статье. Дополнительно добавлено:

- переменные для настройки флагов приема и фильтров и их установка перед приемом в режиме инициализации

- переменные для принятых данных

- в функцию вывода содержимого регистров добавлены регистры, связанные с настройкой фильтров

- в основном цикле программы добавлен анализ приема сообщения и вывод его по UART

Пример вывода результат приема сообщения:

CAN_RX: Сообщение принято

CAN_RX_ID = 34

CAN_Data[0] = 9

 

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

На этом занятии рассмотрим работу с таймерами. Основная функция таймера – это счет импульсов. Импульсы могут поступать от тактового генератора (в данном случае таймер собственно и называется таймером, служащим для измерения временных интервалов) или от внешнего источника (в этом случае таймер называют счетчиком). Таймеры с возможностью тактирования внешним сигналом часто называют таймерами-счетчиками. Таймеры могут осуществлять счет как в прямом направлении (увеличивая свое значение на 1 при каждом тактовом импульсе), так и в обратном направлении (уменьшая свое значение на 1). Основным регистром таймера является регистр, в котором содержится значение таймера (регистр счета).

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

 

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

На этом занятии рассмотрим работу с прерываниями. Прерывания играют важную роль при работе программы. Они позволяют приостановить на время работу одной части программы и выполнить другую часть программы. Прерывания могут формироваться разными периферийными устройствами микроконтроллера, например таймерами. Причем для каждого таймера может генерироваться несколько разных прерываний. Каждое прерывание можно включить или выключить отдельно с помощью специальных битов в регистрах, которые называются «флагами разрешения прерывания». Кроме того, есть возможность включить прерывания глобально, т.е. будут работать все индивидуально разрешенные прерывания. Если прерывание включено, то при его возникновении устанавливается специальный бит в регистре, называемый «флагом прерывания». Для каждого прерывания есть свои биты разрешения прерывания и флага прерывания. Для каждого прерывания или группы прерываний существует специальные несколько ячеек в памяти, в которые записывается адрес подпрограммы обработки прерываний. Совокупность таких ячеек называется «таблицей векторов прерываний».

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

 

7. Программирование на языке С на примере микроконтроллера STM32F407VGT6. Работа с таймером. ШИМ.

На этом занятии рассмотрим работу ШИМ (широтно-импульсного модулятора) на основе таймера «TIM4». Для того, чтобы получить ШИМ сигнал, в таймере есть дополнительные регистры для реализации «функции сравнения». Всего таких регистров 4 и следовательно можно сделать до 4-х каналов ШИМ на одном таймере. В «регистре сравнения» находится число, задающее длительность импульса ШИМ, а число, до которого считает таймер, определяет период ШИМ. Есть несколько режимов ШИМ. Рассмотрим наиболее часто используемый. В этом режиме работы, когда значение таймера равно 0, формируется фронт импульса ШИМ, когда значение таймера достигает значения длительности импульса (в регистре сравнения), формируется спад импульса ШИМ, когда значение таймера достигает конечного числа счета, значение таймера сбрасывается в 0 и начинается новый цикл формирования сигнала ШИМ.

Рассмотрим пример плавного изменения яркости светодиода LED4. Всего необходимо выполнить 3 функции – инициализировать ШИМ с необходимой частотой (периодом), задать длительность импульса и включить ШИМ в работу.

 


В избранное