@bloodyDragon
Dein Programm wartet nicht auf das loslassen des Tasters um dann wieder auf das Drücken zu warten.
Eventuell hilft folgendes:
oder 'logisch' lesbarer: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 } } }
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.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 } }
Das 'PrintInt(switched);' habe ich mal entfernt, da ich glaube, dass du das nur zum testen eingebaut hast.






Zitieren

Lesezeichen