Hallo Leute, in der Steinzeit habe ich mal in einem uC mit Modulo gearbeitet, und damit eine Schleife gebaut, die immer 2 1 0 2 1 0 2 1 0 usw. abarbeitet. Also immer oben anfängt, durchläuft, und nach dem letzten element wieder von vorne beginnt. Leider ist dieser Teil meines Gehirns anscheinend schon wegdiffundiert, so daß ich mich nicht mehr erinnern kann wie ich das in C gemacht habe. Kann mir das nochmal jemand kurz erklären ? Danke
@ Hinz und Kunz (Gast) >in der Steinzeit habe ich mal in einem uC mit Modulo gearbeitet, und >damit eine Schleife gebaut, die immer 2 1 0 2 1 0 2 1 0 usw. abarbeitet. >Also immer oben anfängt, durchläuft, und nach dem letzten element wieder >von vorne beginnt.
1 | for (i=100; i>=0; i--) { |
2 | index = i % 3; |
3 | }
|
MFG Falk
Vielleicht hast du die Schleife ja auch immer 0, 1, 2, 0, 1, 2, 0, 1, 2, ..... zählen lassem und den Wert den du dann tatsächlich verwendest, mittels 2 - i brechnet. uint8_t i = 0; while( 1 ) { i = ( i + 1 ) % 3; Wert = 2 - i; printf( "%d\n", Wert ); }
und was passiert bei 255 -> 0 bei dem überlauf? 252 % 3 = 0 253 % 3 = 1 254 % 3 = 2 255 % 3 = 0 0 % 3 = 0 1 % 3 = 1 ergibt 0 1 2 0 0 1 ...
huhu schrieb: > und was passiert bei 255 -> 0 bei dem überlauf? Dieser Wert 255 tritt niemals auf... >> i = ( i + 1 ) % 3;
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.