Übergabe von Stringkonstanten mit Überlauf in C

Gast #702065
Lesenswert?

Hallo zusammen,

ich hab mal wieder eine Anfängerfrage:

ich muss über einen String an verschiedene Routinen Werte übergeben.

const unsigned int delta_alpha[4] = {178, 622, 622, 178};

Bei Betätigung z. B. Taster1 soll delta_alpha[0] übergeben werden, bei 
erneuter Betätigung delta_alpha[1] usw.
Nachdem delta_alpha[3] übergeben wurde und Taster1 wieder gedrückt wird, 
soll wieder bei delta_alpha[0] begonnen werden.
Das gleiche via Taster2 nur entgegengesetzt.

Wie Programmiere ich diesen "Überlauf"?

Vielen Dank im Voraus.

Gruß

Tom
#702126
Lesenswert?

% wäre auf einem PC das Mittel der Wahl.
Auf einem µC ohne Hardware Division würde mir das
allerdings im Allgemeinen zu lange dauern (*)

    if( i == 3 )
      i = 0;
    else
      i++;

ist deutlich kompakter. Sowohl was Codesize als
auch Ausführungsgeschwindigkeit anbelangt.


(*) Mit der Ausnahme natürlich, wenn der Divisor eine
2-er Potenz ist. In dem Fall ist

     i++;
     i = i % 4;

eine einfache AND Operation und der Compiler wird diese
Variante wahrscheinlich auch mit einem AND implementieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren