Forum: Mikrocontroller und Digitale Elektronik "Selbsthaltung" in einem Unterprogramm über switch/case


von Bernhard S. (snowy1509)


Angehängte Dateien:

Lesenswert?

Hallo! Ich möchte ein Programm für meinem atMega32 schreiben, dass 
abhängig vom gedrückten Taster, meine 8 LED's immer anders ansteuert!

Dafür hab ich mal zwei case geschrieben, die je nach der 
Eingangskombination der Taster wechseln.

Ist es möglich, dass das Unterprogramm, das ich jeweils im Case aufrufe 
so lange wiederholt wird, bis ich einen anderen Taster drücke? Also so 
eine Art "Selbsthalteschaltung"?

von Jonas B. (jibi)


Lesenswert?

>  _delay_ms(10);       // Eine Sekunde warten...

Aha 10 Millisekunden sind also eine Sekunde? Geht's noch ;)

Gruß Jonas

von Peter II (Gast)


Lesenswert?

Jonas Biensack schrieb:
> Aha 10 Millisekunden sind also eine Sekunde? Geht's noch ;)

das pass zu:
#define F_CPU 16000000UL     /* Quarz mit 3.6864 Mhz */

von Bernhard S. (snowy1509)


Angehängte Dateien:

Lesenswert?

hoppla, warte mal, das ist die Falsche Version vom Code ;)

von Bernhard S. (snowy1509)


Lesenswert?

Peter II schrieb:
> Jonas Biensack schrieb:
>> Aha 10 Millisekunden sind also eine Sekunde? Geht's noch ;)
>
> das pass zu:
> #define F_CPU 16000000UL     /* Quarz mit 3.6864 Mhz */

Jaaa, hab eh alles schon ausgebessert gehabt, aber nicht gespeichert^^

also könnt ihr mir helfen?

von Jonas B. (jibi)


Lesenswert?

Ja du musst halt den Zustand der Taster speichern und nicht ständig neu 
abfragen.

Gruß Jonas

von Jonas B. (jibi)


Lesenswert?

Hier mal Pseudocode:

//Funktion die in Endlosschleife laufen soll speichern
char EndlosFunktion;

// Taster speichern
char taster;

char = einlesenTaster();

// Funktion zuweisen
if (char ==1)
   EndlosFunktion = 1
else
  EndlosFunktion = 2


switch(EndlosFunktion)
case 1: mod()
case 2: mod2()


Gruß JOnas

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
Noch kein Account? Hier anmelden.