Hallo
Deine Kommentare gefallen mir. Vorbildlich :)
Um das Problem mit strlen() zu umgehen kann man den String mit 0-Werten vorbelegen. SerWrite() erkennt das als Stringende und bricht die Übertragen beim ersten Zeichen=0 ab obwohl beim Aufruf 5 Zeichen angegeben wurden. (Das ist allgemein die Endekennung eines Strings in C).
Wir wollten doch mit laufenden Motoren testen:
Bei mir sind auch hier noch die Tastenwerte richtig, vermutlich weil ich keine Motoren an meinem asuro habe :)Code:#include "asuro.h" int main (void) { unsigned char x; //definition der pollswitch-variable unsigned char string [5]; //definition eines string mit max. 5 zeichen Init (); /******************************************** /* Achtung! Der asuro kann jetzt losfahren! * /********************************************/ MotorSpeed(150,150); // elektrischen Krach machen while (1) { StatusLED(RED); // wir senden for(x=0; x<5; x++) string[x]= 0; // String mit Endekennungen vorbelegen x = PollSwitch (); //taster werden abgefragt itoa (x, string, 10); //wert wird umgewandelt und in string gespeichert SerWrite (string, 5); //string wird an terminal geschrieben SerWrite ("\n\r", 2); //umbruch an terminal schreiben //("\n" und "\r" sind je ein byte!) StatusLED(YELLOW); // wir warten 1/4 Sekunde for(x=250; x; x--) Sleep(72); // 250 mal eine ms } }
Gruß
mic







Zitieren
Lesezeichen