Bonjour,
J'utilise un vieux controler (Fujitsu MB90F497G).
Dans mon code j'utilise une structure (:
Au cours de mon programme, cette structure est initialisée puis utilisée régulièremment (cycle à 10ms). A bout d'un certain moment (variable entre 20s et 2min) les 2 derniers paramètres sont remis à zero (fRatio_Max et fRatio_Min).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13typedef struct { unsigned char u8CounterSubTaskLimite; ... float fCriter; unsigned char u8CounterSubTask; unsigned long u32AcquiMax; unsigned long u32AcquiMin; float fRatio_Max; float fRatio_Min; } Filter_Data;
Le problème intervient dans ce bout de code:
C'est dans ce bout de code que le problème arrive je pense car quand je le commente, il n'y a plus de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9if(strFDarFilterList[u8FilterIndex].fCriter >= strFDarFilterList[u8FilterIndex].fRatio_Max) { ... } if(strFDarFilterList[u8FilterIndex].fCriter <= strFDarFilterList[u8FilterIndex].fRatio_Min) { ... }
Ce qui m'étonne, c'est que je ne fait que lire le paramètre qui va être remis à zero.
De plus j'ai essayé de changer la position des paramètres dans la structure (en mettant les 2 de la fin au milieu) et le problème disparait aussi.
Dans ce cas la les 2 derniers paramètres sont rafraichis régulièrement, c'est peut être pour cela que je ne voit plus le problème.
Qu'en pensez vous?
J'aimerais comprendre ce phénomène pour le corriger réellement et pas juste mettre un pansement qui le masque.








Répondre avec citation









Partager