Ich habe zwar keinen Asuro, aber laut den Schaltunterlagen ist doch eine Sende-Empfangseinrichtung über RX/TX vorhanden. Wo liegt dann das Problem. Vorlagen zur Sendesoftware sind im Datenblatt vorhanden.
Tja der Titel sagt es ja schon ich möchte den Inhalt einer Variable beim Asuro übermitteln.
Ich habe zwar keinen Asuro, aber laut den Schaltunterlagen ist doch eine Sende-Empfangseinrichtung über RX/TX vorhanden. Wo liegt dann das Problem. Vorlagen zur Sendesoftware sind im Datenblatt vorhanden.
Gut also nehmen wir mal an, dass ich die Helligkeit bei den Rädern gerne wissen möchte und jetzt nehmen wir an ich würde diese auch speichern und zwar unter der Variable "Helligkeit" und jetzt nehmen wir an ich möchte diese Daten über die IR-Schnittstelle senden und über das Hyperterminal einsehen.
Ich kann jetzt nicht einfach SerWrite("Helligkeit",12); schreiben da er mir dann ja nur Helligkeit senden würde und ich möchte ja den Inhalt der Variable haben.
So gibt er dir den linken Wert aus.
Die Funktion LineData(); schaut, wie viele zahlen oder bustaben die variable enthält, da dass ja immer angegeben werden muss, denn wenn der wert über 1000 geht müssen ja 4 Zahlen gesendet werden.Code:#include "asuro.h" int main(void){ unsigned int line[2], i; Init(); void PrintInt(int wert) { char text[16]=" "; itoa(wert,text,10); SerWrite(text,strlen(text)); } FrontLED(ON); StatusLED(OFF); while(1){ LineData(line); PrintInt(line[0]); SerWrite("\n", 1); for(i= 0; i< 200; i++){ Sleep(255); } while(1); return 0; }
mfg
Hannes
Hallo
Variablen kann man auch selbst in Zeichenketten umwandeln und mit SerWrite() senden:
Das ist vielleicht nicht sehr elegant (führende Nullen?), aber man sieht, wie es funktioniert.Code:// aus: https://www.roboternetz.de/phpBB2/ze...=328394#328394 void PrintChar(unsigned int x) { char ergebnis[5] = {'0','0','0','0','0'}; while (x >=10000) { ergebnis[0]++; x -=10000; } while (x >= 1000) { ergebnis[1]++; x -= 1000; } while (x >= 100) { ergebnis[2]++; x -= 100; } while (x >= 10) { ergebnis[3]++; x -= 10; } ergebnis[4] +=x; SerWrite(ergebnis,5); }
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Danke schön an euch beide.
Noch eine Frage an dich core duo was bedeutet itoa.
das ist ne fnktion, welche integer in einen string convertiert.
Bei mir fährt dann ein Stück vorwrts und dann im Kreis.
warum lässt du ihn denn fahren, du willtst doch nur die Werte haben?!
Lesezeichen