Salut,
J'apprend a programmer sur les avr (atmega8) et, j'ai rencontré un probleme avec le code suivante :
j'ai à la compilation l'avertissement suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 PORTC = sequence[pos]; if(sens==HORAIRE){ /*ligne qui pause problem : */ ((++pos)%4) ;
je l'ai dabord ignoré, mais ça a fait n'importe quoi, alors je l'ai ensuite remplacé par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2warning: value computed is not used
Et sa marche tres bien .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ++pos; if (pos==4) pos=0;
Du coup j'ai été pris d'un doute et j'ai essayer cette instruction dans un programme normal :
ce qui ne pause aucun probleme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 int i, pos=0; for (i=0; i<10; i++) printf("%i\n",((++pos)%4) );
Quelqu'un peut il m'expliquer pourquoi cette instruction ne marche pas sur l'atmega?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 1 2 3 0 1 2 3 0 1 2
et que se passe-t-il quand je depasse la dimension du tableau ?
merci bien !
Partager