Description
I have the next exception after 30 or 60 minutes at run the program, I use one task for update 3 labels with sensor data. This are the exception:
Guru Meditation Error: Core 1 panic’ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x400db4fb PS : 0x00060630 A0 : 0x800ecbe0 A1 : 0x3ffd33a0
A2 : 0x000000ff A3 : 0x3ffd3560 A4 : 0x3ffd3568 A5 : 0x00000000
A6 : 0x00000000 A7 : 0x00000175 A8 : 0x0000ffff A9 : 0x0000ffff
A10 : 0x3ffbdc44 A11 : 0x00000000 A12 : 0x0000808e A13 : 0x0000808e
A14 : 0x00000080 A15 : 0x3ffc4294 SAR : 0x00000001 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000 LBEG : 0x4015ffa4 LEND : 0x4015ffae LCOUNT : 0x00000000ELF file SHA256: 0000000000000000
Backtrace: 0x400db4fb:0x3ffd33a0 0x400ecbdd:0x3ffd3530 0x400d8922:0x3ffd3600 0x400d898f:0x3ffd3650 0x400d89cc:0x3ffd36a0 0x400d8ba1:0x3ffd36c0 0x400d8fd6:0x3ffd3750 0x400e2feb:0x3ffd37a0 0x400e30d1:0x3ffd37c0 0x400d26ef:0x3ffd37e0 0x400f96c1:0x3ffd3800 0x4008964a:0x3ffd3820
Rebooting…
ets Jun 8 2016 00:22:57rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:10900
load:0x40080400,len:6388
entry 0x400806b4
And this is the output in ESP exception decoder:
Which can be my problem? Thanks in advance.
What MCU/Processor/Board and compiler are you using?
ESP32 NodeMCU with Arduino IDE and ili9341 display
What do you expect?
Run the program without exception.
Code to reproduce
Add a code snippet to reproduce the issue in the simulator. It should contain only the relevant code which can be compiled. Bug reports without code snippets or with erroneous code snippets will not be reviewed.
Use the ```c
and ```
tags to format your code:
void readMeasurements(void *pvParameters) {
while(1){
co2m = airSensor.getCO2();
temp = airSensor.getTemperature();
hum = airSensor.getHumidity();
char co2C[10];
char tempC[11];
char humC[10];
sprintf(co2C, "%i ppm", co2m);
sprintf(tempC, "%.2f °C", temp);
sprintf(humC, "%.2f %%", hum);
lv_label_set_text_fmt(label_co2, co2C);
lv_label_set_text_fmt(label_temp, tempC);
lv_label_set_text_fmt(label_hum, humC );
vTaskDelay(2000);
}
}
I use other function for make a get to my server that makes an update labels:
void beginWIFITask(void *pvParameters) {
updateBottomStatus(LV_COLOR_TEAL,"Conectando WIFI: " + ssidName);
unsigned long startingTime = millis();
WiFi.begin(ssidName.c_str(), password.c_str());
while (WiFi.status() != WL_CONNECTED && (millis() - startingTime) < timeout)
{
vTaskDelay(250);
}
if(WiFi.status() != WL_CONNECTED) {
updateBottomStatus(LV_COLOR_RED, "Revisa la contraseña y vuelve a intentarlo otra vez");
vTaskDelay(2500);
networkScanner();
vTaskDelete(NULL);
}
int x = 0;
while(1){
if(WiFi.status() == WL_CONNECTED){
lv_dropdown_clear_options(ddlist);
lv_dropdown_add_option(ddlist,"...CONECTADO...",LV_DROPDOWN_POS_LAST);
updateBottomStatus(LV_COLOR_GREEN, "CONECTADO CORRECTAMENTE, IP: " + WiFi.localIP().toString());
delay(100);
if (client.connect(host, 80)){
String url = "/co2GET.php";
url += "?key=512345j1345jkk4325d9eb43d7";
url += "&co2=";
url += co2m;
url += "&temp=";
url += temp;
url += "&hum=";
url += hum;
Serial.print("Requesting URL: ");
Serial.println(url);
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
Serial.println();
Serial.print("conexión cerrada nº ");
Serial.println(x++);
updateBottomStatus(LV_COLOR_BLUE, "::Datos enviados correctamente a Sequosentry::");
}
delay(30000);
updateBottomStatus(LV_COLOR_GREEN, "::Conectando con Sequosentry::");
}else{
updateBottomStatus(LV_COLOR_RED, "::No se puede conectar con la red, revise la conexion::");
delay(30000);
Serial.print("INTENTANDO CONECTAR AL WIFI: ");
Serial.print(ssidName);
Serial.print(" ");
Serial.println(password);
WiFi.disconnect();
WiFi.begin(ssidName.c_str(), password.c_str());
}
}
updateBottomStatus(LV_COLOR_RED, "::Se perdio la conexion con la red WIFI::");
delay(10000);
networkScanner();
vTaskDelete(NULL);
}
And this is the function for update
static void updateBottomStatus(lv_color_t color, String text){
lv_obj_set_style_local_bg_color(bg_bottom, LV_OBJ_PART_MAIN, LV_STATE_DEFAULT,color);
lv_label_set_text_fmt(label_status, text.c_str());
lv_obj_align(label_status, NULL, LV_ALIGN_CENTER, 0, 0);
}
Thanks for all