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:
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
}
}
Bei mir sind auch hier noch die Tastenwerte richtig, vermutlich weil ich keine Motoren an meinem asuro habe :)
Gruß
mic
Lesezeichen