Arexx RP6 V2 Build your own robot kit RP6 V2 Manuale Utente
Codici prodotto
RP6 V2
RP6 ROBOT SYSTEM - 4. Programmierung des RP6
4.6.2. UART Funktionen (serielle Schnittstelle)
Wir haben im C-Crashkurs oben schon einige Funktionen aus der RP6Library verwen-
det, vor allem die UART Funktionen. Mit diesen Funktionen kann man Textnachrichten
Wir haben im C-Crashkurs oben schon einige Funktionen aus der RP6Library verwen-
det, vor allem die UART Funktionen. Mit diesen Funktionen kann man Textnachrichten
über die serielle Schnittstelle des Roboters an den PC (oder andere Mikrocontroller)
schicken und auch von diesem emfangen.
schicken und auch von diesem emfangen.
4.6.2.1. Senden von Daten über die serielle Schnittstelle
void writeChar(char ch)
Diese Funktion schickt ein einzelnes 8-Bit ASCII Zeichen über die serielle Schnittstelle.
Die Anwendung ist sehr einfach:
writeChar('A');
writeChar('B');
Die Anwendung ist sehr einfach:
writeChar('A');
writeChar('B');
writeChar('C');
Gibt „ABC“ aus. Man kann auch direkt ASCII Codes übertragen:
writeChar(65);
writeChar(66);
Gibt „ABC“ aus. Man kann auch direkt ASCII Codes übertragen:
writeChar(65);
writeChar(66);
writeChar(67);
Das ergibt im Terminal ebenfalls die Ausgabe „ABC“ - jedes ASCII Zeichen ist schließ-
Das ergibt im Terminal ebenfalls die Ausgabe „ABC“ - jedes ASCII Zeichen ist schließ-
lich einer bestimmten Nummer zugeordnet, das 'A' z.B. der 65. Mit einer angepassten
Kommunikationssoftware, könnte man aber auch die reinen binären Werte interpretie-
Kommunikationssoftware, könnte man aber auch die reinen binären Werte interpretie-
ren.
Oft braucht man auch:
writeChar('\n');
um eine neue Zeile im Terminal anzufangen.
Oft braucht man auch:
writeChar('\n');
um eine neue Zeile im Terminal anzufangen.
void writeString(char *string)
und writeString_P(STRING)
Diese Funktionen sind sehr wichtig für die Fehlersuche in Programmen, denn hiermit
kann man beliebige Textnachrichten an den PC schicken. Für Datenübertragungen
kann man beliebige Textnachrichten an den PC schicken. Für Datenübertragungen
kann man sie natürlich ebenso verwenden.
Der Unterschied zwischen writeString und writeString_P besteht darin, dass bei Ver-
Der Unterschied zwischen writeString und writeString_P besteht darin, dass bei Ver-
wendung von writeString_P die Texte nur im Flash-ROM (Program Memory) abgelegt
werden und auch von dort gelesen werden, bei writeString jedoch zusätzlich in den
werden und auch von dort gelesen werden, bei writeString jedoch zusätzlich in den
Arbeitsspeicher geladen werden und somit doppelt Speicherplatz verbraucht wird. Und
vom Arbeitsspeicher haben wir nunmal nur 2KB zur Verfügung. Wenn es nur um die
vom Arbeitsspeicher haben wir nunmal nur 2KB zur Verfügung. Wenn es nur um die
Ausgabe von festem und nicht veränderlichem Text geht, sollte man deshalb immer
writeString_P verwenden. Wenn man dynamische Daten ausgeben will, die ohnehin im
writeString_P verwenden. Wenn man dynamische Daten ausgeben will, die ohnehin im
RAM vorliegen, muss man natürlich das normale writeString verwenden.
Auch hier ist die Anwendung denkbar einfach:
Auch hier ist die Anwendung denkbar einfach:
writeString("ABCDEFG");
Gibt „ABCDEFG“ aus, belegt aber für die Zeichenkette auch Arbeitsspeicher.
writeString_P("ABCDEFG");
Gibt ebenfalls „ABCDEFG“ aus, aber ohne dabei unnötig RAM zu belegen!
- 81 -