User Manual

78
4.6.2. Funkce UART (riové rozhraní)
V předchozím rychlokurzu jazyka C již bylo použito několik funkcí z knihovny RP6Library,
například funkce UART. Tyto funkce umňují přenášení textových zpráv přes sériové rozhraní
robotu do a z PC (nebo jiného mikroprocesoru).
4.6.2.1. Vysílání dat
void writeChar(char ch)
Tato funkce vysílá jeden 8-bito ASCII znak přes sériové rozhraní.
Použije jednoduc:
writeChar('A');
writeChar('B');
writeChar('C');
To by mělo vytvořit výstup ABC. Funkce může také přenášet přímo ASCII kódy tj.:
writeChar(65);
writeChar(66);
writeChar(67);
Výsledkem by měl být výstup ABC, protože libovolný ASCII znak může být reprezentován
číslem. Dekadické číslo 65 odpoví znaku 'A'. Speciální komunikační software může znaky
interpretovat přímo v birní hodnotě.
Často budete potřebovat vyslat něco takového:
writeChar('\n');
což na terminálovém programu vyvolá nořádek.
void writeString(char *string)a writeString_P(STRING)
Tyto funkce jsou důležité pro ladění programů, protože umňují vysílání libovolné textové
zprávy na PC. Užitečné mohou být samozřejmě také pro přenos dat.
Nyní si vysvětlíme rozdíl mezi writeString a writeString_P. S funkcí writeString_P se bude
pracovat pouze, pokud je text uložen v paměti FLASH-ROM (paměť programu) a funkce bude
na výstup postupně vyčítat řetězec z FLASH-ROM. Naproti tomu funkce writeString bude brát
řetězec uložený do paměti RAM. Pamatujte, že mikroprocesor má relativně malou paměť RAM
(2 kB). Tae, když chcete na výstup poslat pevný texto řetězec, preferujte použi funkce
writeString_P. Samozřejmě pro přenos dynamických dat, která jsou nějak dostupná v RAM, se
musí použít writeString.
Používání příslušné funkce je stejně jednoduc jako používání writeChar (pozor místo
apostrofu se používají uvozovky):
writeString("ABCDEFG");
vytvoří výstup ABCDEFG, ale jak bylo uvedeno výše, řetězec se nejdříve uloží do paměti
POM a před vysíláním se přesune do RAM.
writeString_P("ABCDEFG");
vytvoří stejný výstup ABCDEFG, ale text nebude zabírat prostor v paměti RAM!