Hallo,
Ich programmiere gerade einen Mega8 unter AVR Studio.
Folgendes Problem stellt sich gerade, ich habe eine While Schleife, die
auch funktioniert:
1 | while(!(Taster_gedrueckt())){
|
2 | Led_1_aus();
|
3 | }
|
4 | Led_1_an();
|
Jetzt würde ich allerdings gerne noch eine Timeout Routine mit einfügen,
und dachte mir eine ODER-Vernüpfung würde reichen, aber es funktioniert
danach gar nichts mehr.
Also in der Art:
1 | while(!(Taster_gedrueckt())||timeout){
|
2 | Led_1_aus();
|
3 | timeout--;
|
4 | }
|
5 | if (!(timeout)){timeout=220000;Led_2_an();}
|
6 | Led_1_an();
|
Normalerweise sollte er doch solange in die WHILE-Schleife bleiben, bis
entweder Taster=1 ODER timeout=0 wird. Macht er aber nicht. Er reagiert
noch nicht einmal mehr auf den Taster, was er beim ersten Beispiel noch
getan hat.
Wo liegt der Fehler?
Gruß Ralf
P.S.: Es geht mir um die Beantwortung DIESER Frage. Ein Workaround
mittels if Anweisung bekomme ich selber hin. Aber warum geht das nicht
mit der WHILE Schleife???