Die Tasterauswertung "lügt" gelegentlich:
Code:
#include "asuro.h"
int main(void)
{
int i;
char taste1, taste2;
Init(); // nach Init() ist die StatusLED grün
// StatusLED(RED);
SerWrite("Programm wird gestartet\n\r", 25); // richtige Anzahl der Zeichen ist wichtig!
for (i=0; i<1000; i++)
{
Sleep(216);
}
SerWrite("GOO!!\n\r", 7); // \n\r bedeutet Neue Zeile und Wagenrücklauf
BackLED(ON,ON);
MotorDir(FWD,FWD);
MotorSpeed(255,230);
StatusLED(YELLOW); // Anzeige "Fahren"
taste2=PollSwitch(); // ersten Vergleichswert einlesen
while(1)
{
taste1=PollSwitch(); // zweiten Wert einlesen
if((taste1 == taste2) && (taste1 > 0))
{
MotorSpeed(0,0);
MotorDir(BREAK, BREAK);
SerWrite("Shit happens\n\r", 14);
StatusLED(RED); // Anzeige "Stoppen"
while(1); // endlos warten (oder Programmende)
}
taste2=taste1; // letzten Wert merken für nächsten Vergleich
Sleep(255);
}
return(0); // ohne meckert der Kompiler
}
Meine Programmbeispiele für den asuro sind meist ungetestet, weil mein asuro eingemottet ist...
Lesezeichen