25-10-2024, 03:13 PM
(24-10-2024, 06:47 PM)F1ATB a écrit : Bonjour.
Oui, ce problème de Watch Dogs m'a été signalé hier soir. J'ai pu le constater de mon côté. Je travaille dessus depuis ce matin. C'est un comportement au niveau de la mémoire, un peu étrange. Quand on enlève des bouts de code, ça refonctionne, bien que le compilateur ne nous dise jamais 'Débordements de mémoire'. Actuellement, j'essaie une version 12.06 dans laquelle j'ai réorganisé la partition mémoire et cela semble fonctionner. Je la publierai quand j'aurai fini mes tests.
Cordialement, André
Bonjour André,
si ça commence à manquer de RAM, on peut facilement gagner plusieurs ko en utilisant des entiers adaptés à l'étendue des données stocker,
pris un par un c'est négligeable mais ici, on utilise des gros tableaux (jusque 6000 éléments), ça vaut le coup de se pencher sur le sujet
Code :
int tabPw_Maison_5mn[600]; //Puissance Active:Soutiré-Injecté toutes les 5mn
int tabPw_Triac_5mn[600];
int tabTemperature_5mn[4][600];
int tabPw_Maison_2s[300]; //Puissance Active: toutes les 2s
int tabPw_Triac_2s[300]; //Puissance Triac: toutes les 2s
int tabPva_Maison_2s[300]; //Puissance Active: toutes les 2s
int tabPva_Triac_2s[300];
int tabPulseSinusOn[101];
int tabPulseSinusTotal[101];
int tab_histo_ouverture[LesActionsLength][600];
int IdxStock2s = 0;
int IdxStockPW = 0;
Code :
int16_t tabPw_Maison_5mn[600]; // Puissance Active:Soutiré-Injecté toutes les 5mn de -32000 a +32000
int16_t tabPw_Triac_5mn[600];
int16_t tabTemperature_5mn[4][600]; // en dixieme de degrés -1270 +1280
int16_t tabPw_Maison_2s[300]; // Puissance Active: toutes les 2s
int16_t tabPw_Triac_2s[300]; // Puissance Triac: toutes les 2s
int16_t tabPva_Maison_2s[300]; // Puissance Active: toutes les 2s
int16_t tabPva_Triac_2s[300];
int8_t tabPulseSinusOn[101]; // 0 a 100
int8_t tabPulseSinusTotal[101]; // 0 a 100
int8_t tab_histo_ouverture[LesActionsLength][600]; // 0 a 100
int16_t IdxStock2s = 0; // % 300
int16_t IdxStockPW = 0; // % 600
En ajustant les types de variable, on tombe en dessous de 15ko
c'est un peu plus de 28k de gagner pour faire autre chose (dont soigner le chien malade ... )
de mes essais, cette adaptation n'impacte pas le reste du programme
Merci André ,
Routeur V12.06 (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W
Routeur V12.06 (since V2.01) / 1xESP32 (IP fixe) / Source UxI / 5 actions
Panneaux 1680Wc
1 Triac : ECS 2000W
1 SSR (multi) : ECS 1800W
1 SSR (On-Off) : Circulateur plancher chauffant eau 50W
1 SSR (multi) : circuit d'eau 1500W
1 SSR (multi) : Ultime 2000W