Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Железо для умного дома

ТЕМА: Текущая версия прошивки esp32.

Текущая версия прошивки esp32. 24 Нояб 2017 14:36 #20492

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7195
  • Спасибо получено: 1114
  • Репутация: 194
смотреть нужно...
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.

Текущая версия прошивки esp32. 29 Нояб 2017 13:15 #20579

  • magneto
  • magneto аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 6
  • Репутация: 1
Хочу напомнить о своей беде.
Повторюсь:

Беда с КК - как только пытаюсь с ним скомпилить, нарушается работа ряда других функций: например, не выводится на вебморду список станций (интернет радио), в логах срабатывает WatchDog:
Task watchdog got triggered. The following tasks did not reset the watchdog in time:
 - IDLE (CPU 0)
Tasks currently running:
CPU 0: loop_des
CPU 1: ipc1

Вот мой код в КК:
void 
startfunc(){
// выполняется один раз при старте модуля.
printf("Hello, kitty!\n");
}

void 
 timerfunc(uint32_t  timersrc) {
// место для вставки кода, который будет выполнятся каждую 1 секунду.
if(timersrc%30==0){
// место для вставки кода, который будет выполнятся каждые 30 секунд.
}
}

void webfunc(char *pbuf) {
os_sprintf(HTTPBUFF,"Hello world"); // вывод данных на главной модуля
}

виснет именно startfunc (нету в логах моего "Hello, kitty". код в startfunc можно убрать - поведение принципиально не меняется )

Замечено вот что: если ткнуть на вебморде, к примеру, в debug или FWupdate, то код в startfunc тут же отрабатывает (вижу в логе), на вебморде после этого появляется список станций и перестает срабатывать WDT

от версии SDK не зависит.
Пробовал затирать по проводу обе партиции (110000 и 280000) - не помогло.

Опции сборки:
MQTT клиент, Время и NTP, I2C сканер, GPIO, Конструктор кода, Настройки по умолчанию, Интернет радио.

ПС. i2c сканер тоже стал неровно работать (настройки gpio по умолчанию), находит лишние адреса (каждый раз разные), в логе каждый раз при тыканьи- [1B][0;31mE (88249) i2c: i2c driver install error[1B][0m. Реальный адрес, правда, тоже видит. Но все это только после принудительного запуска startfunc (см. выше), после сброса не видит ничего, точнее все адреса подряд
Последнее редактирование: 29 Нояб 2017 13:18 от magneto.
Администратор запретил публиковать записи гостям.

Текущая версия прошивки esp32. 29 Нояб 2017 13:50 #20580

  • abv2003
  • abv2003 аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 69
  • Спасибо получено: 8
  • Репутация: 2
Для ESP32 структура КК
void
startfunc(){
// выполняется один раз при старте модуля.
}

void
 timerfunc(uint32_t  timersrc) {
// выполнение кода каждую 1 секунду
if(timersrc%30==0){
// выполнение кода каждые 30 секунд
}

 vTaskDelay(1000 / portTICK_PERIOD_MS);
}

void webfunc(char *pbuf) {
os_sprintf(HTTPBUFF,"<br>test"); // вывод данных на главной модуля
}

У Вас по не вижу
vTaskDelay(1000 / portTICK_PERIOD_MS);
Это задержка чтоб оставить ресурсы другим функциям.
Последнее редактирование: 29 Нояб 2017 13:56 от abv2003.
Администратор запретил публиковать записи гостям.

Текущая версия прошивки esp32. 29 Нояб 2017 14:24 #20581

  • magneto
  • magneto аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 6
  • Репутация: 1
в смысле, вот так?
void 
startfunc(){
// выполняется один раз при старте модуля.
vTaskDelay(1000 / portTICK_PERIOD_MS);
printf("Hello, kitty!\n");
}
не очень понял, при чем тут задержка, если функция вообще не начинает выполняться. Но я попробовал, кроме того, что после тыканья в debug, в логе мой Hello появляется с секундной задержкой, в остальном - без изменений.
Администратор запретил публиковать записи гостям.

Текущая версия прошивки esp32. 29 Нояб 2017 14:26 #20582

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7195
  • Спасибо получено: 1114
  • Репутация: 194
в timerfunc эта пауза должна стоять, а не в старте.

Чтобы понять зачем она там нужно почитать про системы RTOS.
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.

Текущая версия прошивки esp32. 29 Нояб 2017 15:34 #20583

  • magneto
  • magneto аватар
  • Не в сети
  • Давно я тут
  • Сообщений: 89
  • Спасибо получено: 6
  • Репутация: 1
Да, заработало, спасибо!

то есть, выходит, timerfunc вызывается просто в цикле какой-то task постоянно? а не раз в секунду как в описании?
Тогда имеет смысл поправить описание КК применительно для esp32, а то там пример только для esp8266 и он не совсем подходит.
Администратор запретил публиковать записи гостям.
Модераторы: FlyRouter
Время создания страницы: 0.155 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.