ESP8266 Урок 13. Программный таймер

 

 

 

Благодаря возможностям библиотеки SDK, поставляемой для ESP8266, мы можем использовать программные таймеры. Причём использовать их не сложно, и мы в этом на данном уроке убедимся.

Схема у нас будет простейшая — отладочная плата, подключенная к USB компьютера

 

 

А проект мы создадим из проекта урока 7 с именем UART_TX и назовём его OS_TIMER.

Откроем наш проект в Eclipse и в файле main.c удалим полностью бесконечный цикл (а не только его тело), он нам будет не нужен, так как таймер у нас будет работать в циклическом режиме.

Объявление вот этой локальной переменной также удалим, также удалим и инициализацию UART, он нам сегодня не потребуется

 

uint16_t i=0;

// Configure the UART

uart_init(BIT_RATE_115200, BIT_RATE_115200);

 

Удалим также и подключение заголовочного файла

 

#include "driver/uart.h"

 

Объявим глобальную переменную структуры таймера

 

 

В функции user_init() сначала отключаем наш таймер, таков порядок

 

 

Добавим функцию обратного вызова для нашего таймера

 

 

Также добавим глобальную переменную для состояния нашего светодиода

 

 

 

Давайте в функции обработчике применим тернарный оператор для переключения состояния светодиода

 

 

Установим вывод ножки порта, к которой подключен светодиод, в нужное состояние

 

 

В функции user_init() с помощью нужной функции произведём инициализацию нашего таймера, передав ей в параметрах указатель на переменную структуры и на функцию обратного вызова, которой мы никакие параметры не передаём, поэтому в качестве третьего аргумента используем NULL

 

 

И осталось нам лишь запустить таймер, передав ему в качестве параметра величину периода между срабатываниями в милисекундах

 

 

В качестве третьего параметра мы говорим таймеру, что срабатывание его будет не однократным, а периодическим, если бы нужно было, чтобы таймер сработал только один раз, мы бы передали 0.

Соберём код, прошьём контроллер и увидим, что наш светодиод будет мигать раз в секунду (зажигаться и потухать)

 

 

Итак, сегодня мы познакомились с использованием программного таймера, что нам в дальнейшем обязательно пригодится.

Всем спасибо за внимание!

 

Предыдущий урок Программирование МК ESP8266 Следующий урок

 

Исходный код

 

 

Модуль ESP NodeMCU можно купить здесь: Модуль ESP NodeMCU

Различные модули ЕSP8266 можно приобрести здесь Модули ЕSP8266

Переходник USB to TTL можно приобрести здесь ftdi ft232rl

Многофункциональный переходник CJMCU FT232H USB к JTAG UART FIFO SPI I2C можно приобрести здесь ftdi ft232rl

Логический анализатор 16 каналов можно приобрести здесь

 

 

Смотреть ВИДЕОУРОК (нажмите на картинку)

 

ESP8266 Программный таймер

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*