Bonsoir à toutes et à tous,
Dans mes essais de multi-tâche, je tombe sur un problème dont je ne trouve pas la source.
J'ai une fonction, si je la place dans la loop() ne pose aucun problème.
Maintenant, si je la place dans une tâche, ça ne veut plus fonctionner. La fonction est la suivante :
getLocalTime(&timeinfo);
strftime( message1, 24, "%d/%m/%Y %H:%M:%S,", &timeinfo);
sprintf(message2, "%.1f,%.1f,%.1f\n", pActif, vRMS, iRMS);
t0 = millis();
if (appendFile2(SD, "/Valeurs.txt", message1, message2) == 1)
Serial.println("Problème");
avec :
uint8_t appendFile2(fs::FS &fs, const char * path, const char * message1, const char * message2){
File file = fs.open(path, FILE_APPEND);
if(!file){
return 1;
} else {
file.print(message1);
file.print(message2);
file.close();
return 0;
}
}
La même fonction dans sa tâche :
xTaskCreatePinnedToCore(&Traitement, "Traitement", 2048, NULL, 1, NULL, 1);
void Traitement(void *params)
{
while (true)
{
printf("Traitement\n");
getLocalTime(&timeinfo);
strftime( message1, 24, "%d/%m/%Y %H:%M:%S,", &timeinfo);
sprintf(message2, "%.1f,%.1f,%.1f\n", pActif, vRMS, iRMS);
if (appendFile2(SD, "/Valeurs.txt", message1, message2) == 1)
printf("Problème\n");
vTaskDelay(3000 / portTICK_PERIOD_MS);
}
}
Voici l'erreur obtenue :
18:36:10.530 -> Carte SD détectée // cà, c'est dans le setup()
18:36:10.530 -> Traitement // je rentre dans la fonction
18:36:10.530 -> 26/12/2024 18:36:10, // pistage de message1 avec des print
18:36:10.530 -> 0.0,0.0,0.0 // pistage de message2
18:36:10.530 -> Guru Meditation Error: Core 1 panic'ed (Unhandled debug exception). Si j'utilse le core 0, le problème est le même
18:36:10.530 -> Debug exception reason: Stack canary watchpoint triggered (Traitement)
18:36:10.530 -> Core 1 register dump:
18:36:10.530 -> PC : 0x40090976 PS : 0x00060836 A0 : 0x80090184 A1 : 0x3ffd3ad0
18:36:10.563 -> A2 : 0x3ffbddb4 A3 : 0xffffffff A4 : 0x00060823 A5 : 0x3f407a80
18:36:10.563 -> A6 : 0x00000000 A7 : 0x00000004 A8 : 0x00000000 A9 : 0x00000001
18:36:10.563 -> A10 : 0x007b7b2c A11 : 0x3ffb7b2c A12 : 0x3ffcd1cc A13 : 0x00003fa2
18:36:10.563 -> A14 : 0x00000000 A15 : 0x00000200 SAR : 0x0000001b EXCCAUSE: 0x00000001
18:36:10.596 -> EXCVADDR: 0x00000000 LBEG : 0x4008a0ac LEND : 0x4008a0b7 LCOUNT : 0xffffffff
18:36:10.596 ->
18:36:10.596 ->
18:36:10.596 -> Backtrace: 0x40090973:0x3ffd3ad0 0x40090181:0x3ffd3b00 0x4008e9f3:0x3ffd3b20 0x400d4a72:0x3ffd3b60 0x400d3c0b:0x3ffd3b90 0x400d40ce:0x3ffd3bc0 0x4011534e:0x3ffd3c00 0x40115871:0x3ffd3c20 0x401164b2:0x3ffd3c40 0x40116840:0x3ffd3c80 0x40117710:0x3ffd3cc0 0x4011921f:0x3ffd3f30 0x400e762e:0x3ffd40a0 0x4016266d:0x3ffd40c0 0x400d384e:0x3ffd40e0 0x400d2e14:0x3ffd4180 0x400d2759:0x3ffd41b0 0x400d29f2:0x3ffd41f0 0x40090876:0x3ffd4220
18:36:10.638 ->
18:36:10.638 ->
18:36:10.638 ->
18:36:10.638 ->
18:36:10.638 -> ELF file SHA256: 2d8a6cbdc5ae68dc
18:36:10.638 ->
1
Des idées du problème ?
Cordialement.
Pierre.

