Bonjour,
J'essai d'optimiser mon code arduino car je suis a 81%.
Certaine fonction était répéter pour chaque pin de sortie.
Exemple, j'ai 3 oscillateurs je recopiait 3 fois la même fonction en changent juste oscillo1, oscillo2 ...
Je cherche donc a optimiser ces fonctions mais je coince sur un code erreur.
Comme souvent sa doit être un détail qui saute au yeux qui va vous faire grincer des dents
J'y suis depuis 10h se matin ...
Mais j'ai ce code erreur que je ne comprend pasCode:uint8_t positionOscillo[3]; boolean vaEtVientOscillo[3]; uint32_t tempsPrecedentOscillo[3]; uint16_t delaisMouvementOscilloMillis = 2000; uint8_t angle1Oscillo = 0; uint8_t angle2Oscillo = 180; void setup() { Serial.begin(9600); } void oscillateur() {// ******************************************************************************************************************************************* uint8_t i = 1; while (i <= 3) { // 3 oscillateurs if (delaisMouvementOscilloMillis[i] >= 1000) { // si delaisMouvementOscilloMillis inferieur a 1 seconde, pas de boucle. if (millis() - tempsPrecedentOscillo[i] >= delaisMouvementOscilloMillis[i]) { // mouvement des oscillateur toutes les "delaisMouvementOscilloMillis" tempsPrecedentOscillo[i] = millis(); // ******************************************************************************************************************************************* if (positionOscillo[i] == angle1Oscillo[i]) { positionOscillo[i]++; vaEtVientOscillo[i] = 0; } else if (positionOscillo[i] == angle2Oscillo[i]) { positionOscillo[i]-- ; vaEtVientOscillo[i] = 1; } else if ((vaEtVientOscillo[i] == 0) && (positionOscillo[i] < angle2Oscillo[i])) { positionOscillo[i]++ ; } else if ((vaEtVientOscillo[i] == 1) && (positionOscillo[i] > angle1Oscillo[i])) { positionOscillo[i]--; } Serial.print("oscillo n°"); Serial.println(i); } } i++; } } void loop() { void oscillateur(); }
Si quelqu’un peut m'explique le problème svp .Code:sketch_jul05a:16: error: invalid types 'uint16_t {aka unsigned int}[uint8_t {aka unsigned char}]' for array subscript if (delaisMouvementOscilloMillis[i] >= 1000) { ^ sketch_jul05a:17: error: invalid types 'uint16_t {aka unsigned int}[uint8_t {aka unsigned char}]' for array subscript if (millis() - tempsPrecedentOscillo[i] >= delaisMouvementOscilloMillis[i]) { // mouvement des oscillateur toutes les "delaisMouvementOscilloMillis" ^ sketch_jul05a:20: error: invalid types 'uint8_t {aka unsigned char}[uint8_t {aka unsigned char}]' for array subscript if (positionOscillo[i] == angle1Oscillo[i]) { ^ sketch_jul05a:24: error: invalid types 'uint8_t {aka unsigned char}[uint8_t {aka unsigned char}]' for array subscript else if (positionOscillo[i] == angle2Oscillo[i]) { ^ sketch_jul05a:28: error: invalid types 'uint8_t {aka unsigned char}[uint8_t {aka unsigned char}]' for array subscript else if ((vaEtVientOscillo[i] == 0) && (positionOscillo[i] < angle2Oscillo[i])) { ^ sketch_jul05a:31: error: invalid types 'uint8_t {aka unsigned char}[uint8_t {aka unsigned char}]' for array subscript else if ((vaEtVientOscillo[i] == 1) && (positionOscillo[i] > angle1Oscillo[i])) { ^ exit status 1 invalid types 'uint16_t {aka unsigned int}[uint8_t {aka unsigned char}]' for array subscript
Merci d'avance
-----