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 Программный таймер

Один комментарий на “ESP8266 Урок 13. Программный таймер
  1. Дмитрий:

    Ничего непонятно, но интересно! Спасибо!

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

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

*