@bloodyDragon
Dein Programm wartet nicht auf das loslassen des Tasters um dann wieder auf das Drücken zu warten.
Eventuell hilft folgendes:
Code:
StartSwitch();
while(1) {
PrintInt(switched);
if(switched == TRUE) { // Tastendruck
t1 = PollSwitch();
t2 = PollSwitch();
PrintInt(t1);
PrintInt(switched);
SerPrint ("\n\r");
while (switched == TRUE) {
switched = FALSE;
StartSwitch();
Sleep (10); // muesste ueberfluessig sein
}
}
}
oder 'logisch' lesbarer:
Code:
switched = FALSE;
StartSwitch();
while(1) {
while (switched == FALSE)
; // warte auf druecken
t1 = PollSwitch();
t2 = PollSwitch();
PrintInt(t1);
SerPrint ("\n\r");
while (switched == TRUE) { // warte auf loslassen
switched = FALSE;
StartSwitch();
Sleep (10); // muesste ueberfluessig sein
}
}
Der sleep in der inneren while-Schleife hat nichts mit dem oben angesprochenen warten zu tun. Hab ich nur mal vorsichtshalber da hingeschrieben, da ja auch der Interrupt Zeit braucht bis er die switched-Variable gesetzt hat.
Das 'PrintInt(switched);' habe ich mal entfernt, da ich glaube, dass du das nur zum testen eingebaut hast.
Lesezeichen