Size: a a a

ESP8266 & ESP32 [RU]

2021 September 07

DS

Dmitriy Salko in ESP8266 & ESP32 [RU]
Включите вывод стека и расшифруйте его. Явно же в прерывании обращаетесь куда не надо.
источник

В

Васька in ESP8266 & ESP32 [RU]
как? вообще у, пока вся отладка это моргающий светодиод :(

ЗЫ:

void IRAM_ATTR detectsMovement()
{
  bMotionOn = true;
}
проблема явно не в том куда лезу
источник

DS

Dmitriy Salko in ESP8266 & ESP32 [RU]
Переменная volatile?
источник

DS

Dmitriy Salko in ESP8266 & ESP32 [RU]
И ее тоже желательно в IRAM поместить (а может и обязательно, уже не помню)
источник

В

Васька in ESP8266 & ESP32 [RU]
нет, обычная, но проблема ж не в том, что она оптимизировалась, а в том, что в ребут уходло, только я пробовал создать таску
источник

В

Васька in ESP8266 & ESP32 [RU]
без фритос работает
источник

DS

Dmitriy Salko in ESP8266 & ESP32 [RU]
Так volatile это не только про оптимизацию. Ещё atomic добавить стоит, если мьютексы/семафоры для доступа к этой переменной не используете.
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
глобальные переменные во freeRTOS это плохо однозначно, тем более в двухядерной среде. Лучше переделать на семафоры, можно привратника прикрутить и т.п.
источник

‌W

‌‌‎👿 Daemonic Wisp... in ESP8266 & ESP32 [RU]
Кстати, я же верно понимаю, что даже если доступ к переменной идёт только с взятием бинарного семафора, то volatile всё равно нужен?
источник

‌W

‌‌‎👿 Daemonic Wisp... in ESP8266 & ESP32 [RU]
Просто в Java не нужен, например, там если все чтения/записи упорядочены, то чтение обязано вернуть последнее написанное значение. А упорядоченность достигается взятием/освобождением блокировки.
источник

1

123 in ESP8266 & ESP32 [RU]
яндекс сделал прекрасную вещь Заходим на ютуб через яндекс браузер. Выбераем анголязычный видос, жмем перевести, ждем, наслаждаемся.
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
ппл, кто-то пользовался уже tonyp7/esp32-wifi-manager?
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
волатайл — это про отсутствие оптимизации
источник

DS

Dmitriy Salko in ESP8266 & ESP32 [RU]
Volatile - указание компилятору на то что переменная может поменяться неявным для него образом (не цепочкой вызовов функций, а в прерывании, которые никто не вызывает). Этот атрибут должен быть у всех переменных которые используются и в прерывании и в обычном коде и в данном случае тоже.
источник

‌W

‌‌‎👿 Daemonic Wisp... in ESP8266 & ESP32 [RU]
Вот-вот, я как-то забыл про это 😅 Думал, что блокировки достаточно, как в Java.
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
ппл, вай-фай-манагер кто-нить пользует?
источник

AK

Andy Korg in ESP8266 & ESP32 [RU]
источник

DS

Dmitriy Salko in ESP8266 & ESP32 [RU]
Подьзовал, удобная штука
источник

AP

Anton Petrusevich in ESP8266 & ESP32 [RU]
а ишью какие-то есть? а то смотрю в гитхаб, вижу проблему с 11м андроидом
источник

В

Васька in ESP8266 & ESP32 [RU]
не в переменной дело

void IRAM_ATTR detectsMovement()
{
// bMotionOn = true;
}

vTaskStartScheduler();
 xTaskCreate(ThreadA, "Task A", 1000, NULL, tskIDLE_PRIORITY, NULL);

 attachInterrupt(digitalPinToInterrupt(motionSensor), detectsMovement, CHANGE);
 attachInterrupt(digitalPinToInterrupt(motionSensor2), detectsMovement, CHANGE);
источник