Hallo,
ich weiß nicht genau, wie ich mein Problem beschreiben soll, aber ich
fange einfach mal so an.
Ich benutze den Entprellungscode von
http://www.mikrocontroller.net/articles/Entprellung#Debounce-Makro_von_Peter_Dannegger
Dieser Funktioniert eigentlich ganz gut. Doch leider nicht beim ersten
mal.
Der nachfolgender Pseudocode, soll mein Problem beschreiben.
Pseudocode:
1 | void funktion(void)
|
2 | {
|
3 | while(1)
|
4 | {
|
5 | if(debounce(PINC, PC1))
|
6 | {
|
7 | …;
|
8 | break;
|
9 | }
|
10 | }
|
11 |
|
12 | while(1)
|
13 | {
|
14 | if(debounce(PINC, PC1))
|
15 | {
|
16 | …;
|
17 | break;
|
18 | }
|
19 | }
|
20 | }
|
Beim ersten Aufruf der Funktion habe ich das Gefühl, dass wenn ich
meinen Taster drücke, gleichzeitig die zweite while-schleife mit
gedrückt wird. Wenn ich aber die Funktion zum zweiten mal Aufrufe, wird
zuerst der erste und dann der zweite debounce abgefragt.
Vielleicht hatte schon mal jemand das Problem von euch. Oder ich sehe
den Wald vor lauter Bäumen nicht. Aber woran kann sowas den liegen? Oder
hab ich einen logischen Fehler mit den while(1)??