Hallo zusammen...
Ich habe mal eine Frage und zwar ist das hier ein kleines Unterprogramm
von mir, bei dem auf dem Display ein Countdown von 30 runterläuft.
"volatile unsigned int Sekunden"
Diese werden mit einem OVF Interrupt runtergezählt... was auch super
klappt.
Auch das abbrechen der 2 Schleifen durch Taste_x funktioniert. Nur
Leider springt das Programm nicht in die zweiter Schleife, wenn Sekunden
= 10 erreicht. Es bleibt ständig in der ersten Schleife...
Was mache ich falsch?
1 | void countDown() // 30sec CountDown-Funktion
|
2 | {
|
3 | lcd_clearDisplay();
|
4 | lcd_gotoxy(1,8);
|
5 | lcd_putstr(" <-- CD ");
|
6 |
|
7 | while((Taste_x==0)|(Sekunden<10))
|
8 | {
|
9 | lcd_gotoxy(1,4);
|
10 | lcd_putc(Sekunden/10 + 0x30); // Displayausgabe Zehner
|
11 | lcd_putc(Sekunden%10 + 0x30); // Displayausgabe Einer
|
12 | }
|
13 |
|
14 | while((Taste_x==0)|(Sekunden<5))
|
15 | {
|
16 | lcd_gotoxy(1,4);
|
17 | lcd_putstr(" "); // Zehnerausgabe löschen
|
18 | lcd_gotoxy(1,5);
|
19 | lcd_putc(Sekunden%10 + 0x30); // Displayausgabe Einer
|
20 | }
|
21 | sound(); // Unterprogramm Sound aufrufen
|
22 | }
|
Vielen Dank schonmal!
Gruß xASP