1

Topic: Не успевает обновиться светодиод

В моем скетче нужно по нажатию кнопни на смартфоне отправить емейл.
До отправки нужно показать пользователю, что система занята процесом, поскольку модуль SIM800 долго отвечает и к тому же нужно послать в модуль несколько команд (выход в интернет, залогиниться на почтовый ящик, создать сообщение, отправить, разорвать соединение).

Алгоритм:

1.    По нажатию кнопки зажигаем красный светодиод - RemoteXY.led_1_r = 255;  Обрабатываем буфер RemoteXY_Handler ();

2.    Посылаем емейл (функция отправки набора команд SIM800). Поскольку нужно ожидать ответа от SIM800, в процессе после каждой команды уходим в do-while и ждем ответа от SIM800. При этом RemoteXY не может быть задействована, потому что если вставить RemoteXY_Handler () в do-while, ESP8266 уходит в вечный ребут. 

3.    После отправки тушим красный светодиод - RemoteXY.led_1_r = 0 и зажигаем зеленый  RemoteXY.led_1_g = 255.

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

2

Re: Не успевает обновиться светодиод

Hello,

Do not use blocking code : replace your do-while loop by a finite state machine.