Chyba v programu pro ESP32-C3-Zero

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Dene Elanik
Příspěvky: 73
Registrován: 29 led 2020, 20:15

Chyba v programu pro ESP32-C3-Zero

Příspěvek od Dene Elanik » 12 lis 2024, 14:17

Kód: Vybrat vše

RTC_DATA_ATTR int pocetBootovani = 0;

void vypisZdrojProbuzeni(){
  esp_sleep_wakeup_cause_t zdrojProbuzeni;

  zdrojProbuzeni = esp_sleep_get_wakeup_cause();

  switch(zdrojProbuzeni)
  {
    case ESP_SLEEP_WAKEUP_EXT0 : Serial.println("Cip probuzen externím signálem - RTC_IO"); break;
    case ESP_SLEEP_WAKEUP_EXT1 : Serial.println("Cip probuzen externím signálem - RTC_CNTL"); break;
    case ESP_SLEEP_WAKEUP_TIMER : Serial.println("Cip probuzen casovacem"); break;
    case ESP_SLEEP_WAKEUP_TOUCHPAD : Serial.println("Cip probuzen dotykovym senzorem"); break;
    default : Serial.printf("Jiny zdroj probuzeni: %d\n",zdrojProbuzeni); break;
  }
}

  void setup(){
    Serial.begin(115200);
    ++pocetBootovani;
    Serial.println(String(pocetBootovani)+ ". nabootovani");
    vypisZdrojProbuzeni();
    esp_sleep_enable_ext0_wakeup(GPIO_NUM_3,HIGH);
    Serial.println("Aktivuji mod hlubokeho spanku...");
    esp_deep_sleep_start();
}

void loop(){
}
Pokouším se uspat a probudit tlačítkem ESP32-C3-Zero. Při kompilaci se objeví chyba:

Kód: Vybrat vše

E:\ESP32_pgm\probuzeni_gpio\probuzeni_gpio.ino: In function 'void setup()':
E:\ESP32_pgm\probuzeni_gpio\probuzeni_gpio.ino:23:5: error: 'esp_sleep_enable_ext0_wakeup' was not declared in this scope; did you mean 'esp_sleep_enable_bt_wakeup'?
   23 |     esp_sleep_enable_ext0_wakeup(GPIO_NUM_3,HIGH);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |     esp_sleep_enable_bt_wakeup

exit status 1

Compilation error: 'esp_sleep_enable_ext0_wakeup' was not declared in this scope; did you mean 'esp_sleep_enable_bt_wakeup'?
Nemohu ji najít, mám podezření na příkaz ... ext0 ...

Dene Elanik
Příspěvky: 73
Registrován: 29 led 2020, 20:15

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od Dene Elanik » 12 lis 2024, 14:26

Ještě dodávám, že jsme přidal knihovnu ESP32, ale nepomohlo to

Pablo74
Příspěvky: 87
Registrován: 03 lis 2019, 17:00

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od Pablo74 » 12 lis 2024, 14:28


Dene Elanik
Příspěvky: 73
Registrován: 29 led 2020, 20:15

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od Dene Elanik » 12 lis 2024, 14:41

Bohužel ne, chyba pořád stejná, zkoušel jsem i ext1, ale stená hláška

Pablo74
Příspěvky: 87
Registrován: 03 lis 2019, 17:00

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od Pablo74 » 12 lis 2024, 14:43

A když na začátek zdrojáku přidáš (viz níže), bude to funkční?

Kód: Vybrat vše

#include "driver/rtc_io.h"

Dene Elanik
Příspěvky: 73
Registrován: 29 led 2020, 20:15

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od Dene Elanik » 12 lis 2024, 15:00

Nepomohlo, ale když změním desku na ESP32-WROOM-DA Module, tak se program zkompiluje bez chyby.

Uživatelský avatar
kiRRow
Příspěvky: 1266
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od kiRRow » 12 lis 2024, 16:54

Pokud se ten samý kód zkompiluje pro jinou desku správně a pro tuhle ne, není tento příkaz tou deskou podporován. Křičí to na tebe, že nemáš deklarováno 'esp_sleep_enable_ext0_wakeup' ... v tomto návodě ( https://hutscape.com/tutorials/external ... no-esp32c3 ) používájí příkaz

Kód: Vybrat vše

esp_deep_sleep_enable_gpio_wakeup(1 << INTERRUPT_PIN,
    ESP_GPIO_WAKEUP_GPIO_HIGH);

Uživatelský avatar
kiRRow
Příspěvky: 1266
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od kiRRow » 12 lis 2024, 17:53

Jenom tak ze srandy, né, že bych se nerad nezamyslel a neopověděl a nepomohl, ale jen ze zvědavosti ... Zeptal jsem se co si o tom myslí openAI, zkopíroval jsem jí tvůj dotaz i to co jsi už zkoušel a odpověď zní :
Chyba je pravděpodobně způsobena tím, že ESP32-C3 má omezenou podporu pro některé funkce, které jsou dostupné u jiných ESP32 modulů, jako je ESP32-WROOM. Konkrétně funkce esp_sleep_enable_ext0_wakeup() nemusí být dostupná pro ESP32-C3, protože tato verze používá jinou architekturu a některé funkce hlubokého spánku a probouzení nemusí fungovat stejně.

Zde jsou možnosti, jak tento problém vyřešit:

Zkontroluj dokumentaci pro ESP32-C3: ESP32-C3 může mít alternativní způsob, jak probouzet zařízení pomocí externího GPIO, nebo jiný přístup k hlubokému spánku. Možná bude nutné použít funkci specifickou pro ESP32-C3.

Vyzkoušej esp_sleep_enable_gpio_wakeup(): Místo esp_sleep_enable_ext0_wakeup() zkus použít esp_sleep_enable_gpio_wakeup(). ESP32-C3 by měl tuto funkci podporovat, ačkoli může být nutné přidat další kroky, jako nastavit PIN pro probuzení pomocí esp_deep_sleep_enable_gpio_wakeup(GPIO_NUM_3, ESP_GPIO_WAKEUP_GPIO_HIGH).

Použij makra pro kontrolu kompatibility kódu: Můžeš přidat makra, která zkontrolují, na jakém typu desky program běží, a podle toho upravíš volané funkce. Například:

cpp
Zkopírovat kód
#ifdef CONFIG_IDF_TARGET_ESP32C3
// Kód pro ESP32-C3 (např. esp_sleep_enable_gpio_wakeup)
#else
// Kód pro běžný ESP32 (např. esp_sleep_enable_ext0_wakeup)
#endif
Aktualizuj knihovny a IDE: Pokud nepoužíváš nejnovější verzi ESP32 knihoven nebo Arduino IDE, aktualizuj je. Mohou přidat kompatibilitu pro ESP32-C3 a zajistit správné rozpoznání funkcí spánku a probuzení.

Dej vědět, pokud bys potřeboval detailnější vysvětlení k některému z těchto kroků.
Tím, neříkám, že se nemáš chodit ptát tady ... rádi pomůžeme, rádi poradíme. Ale když potom ten příspěvek pošleš umělé inteligenci a s její pomocí se dopracuješ řešení dříve, než ti někdo stihne poradit tady, tak můžeš svůj úspěch publikovat. Budeš mít vyřešeno dříve a smysluplný příspěvek na fóru zůstane pro budoucí řešitele problému, včetně toho jak jsi postupoval a čím to bylo, jak se to opravilo. Win Win situace.

Dene Elanik
Příspěvky: 73
Registrován: 29 led 2020, 20:15

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od Dene Elanik » 12 lis 2024, 17:58

Asi mám hloupější AI, ale každopádně jsi mne navedl na správnou stopu.
Tvůj odkaz pomohl, Zero už spí a můžu ho kdykoli probudit externě pinem, jak jsem zamýšlel.
Tak DÍKY :lol:

Uživatelský avatar
kiRRow
Příspěvky: 1266
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Chyba v programu pro ESP32-C3-Zero

Příspěvek od kiRRow » 12 lis 2024, 18:01

Rádo se stalo. ;) ... přijďte zas :lol:

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Ahrefs [Bot] a 1 host