User manual
Ukážeme si tuto metodu na příkladu: 
Když dostává pravý senzor více světla než levý senzor, provede se příkaz 1, v opačném případě 
se provede příkaz 2. 
int lData[2]; // Přidělení paměti pro výsledky měření 
LineData(lData); // Čtení naměřených dat 
if (lData[1] > lData[0]) 
command1; 
else 
command2; 
K použití funkcí sériových rozhraní (SerWrite (), SerRead () ) budeme potřebovat řetězec znaků, 
který deklarujeme jako: 
char message[] = “This is a text string” 
Abychom odeslali textový řetězec do robota, voláme funkci SerWrite() s příslušnými parametry. 
První parametr obsahuje textový řetězec, nebo proměnnou, která obsahuje textový řetězec. Druhá 
proměnná popisuje počet znaků, který se má odeslat, např.: 
SerWrite(message,20); 
respektive 
SerWrite(„This is a text“,14); 
odešle na IR vysílač zprávu “This is a text”. 
Pro příjem znaků používá ASURO funkci SerRead (). První parametr obsahuje proměnnou, ve které 
se ukládají přijaté znaky. Druhý parametr definuje, kolik znaků se přijme a třetí parametr definuje čas 
platnosti funkce: Pokud se do určité doby (počet hodinových cyklů procesoru) nepřijmou žádná data 
SerRead (), funkce se zruší. Při použití čísla "0" však funkce počká, až se přijmou všechny znaky. 
Funkci ukážeme na příkladu. 
ASURO má přijmout z IR vysílače zprávu “Hi, here I am”. Pomocí definice řetězce 
char message [] = ”01234567890123456789” 
nejdříve přiřadíme očekávanému textu prostor v paměti. Je samozřejmé, 
že místo v paměti musí být pro očekávanou zprávu dostatečně velké. 
SerRead (message,13,0) 
Přečti 13 znaků a počkej, dokud se nepřijme 13 znaků. Nyní máme za to, že byl odeslán textový 
řetězec “Hi, here I am”. Funkce přepíše prvních 13 znaků předefinovaného řetězce zprávy větou “Hi, 
here I am” a výsledkem bude řetězec: 
Hi, here I am 3456789 
Přehled funkcí robota ASURO 
K programování robota ASURO bylo vtvořeno několik funkcí. Tyto funkce nejsou v žádném případě 
optimálním řešením pro všechny účely a k některým účelům bude vhodné si napsat speciální funkce. 
Všechny funkce byly vytvořeny, jak je definováno v deklaracích a lze je pochopit kontrolou příkladů. 
Aby se zabránilo špatnému pochopení: ovládací funkce jako řízení motoru nebo funkce indikátorů 
mění stav, který zůstane platný až do další změny. Zelený LED indikátor zůstane zelený až do další 
změny na jinou barvu, nebo dokud se nevypne. 
void Init (void) 
Tato funkce resetuje mikroprocesor do původního stavu a musí se provést vždy na začátku programu. 
Když funkce chybí, procesor nebude vědět, ani co má dělat s terminály. Jednoduchý program pro 
ASURO by měl vypadat aspoň takto: 
#include “asuro.h” 
int main(void) { // zde deklarujeme některé proměnné 
Init(); // zde vložíme naše vlastní funkční bloky 
while(1); // nekonečný cyklus 
return 0; // nikdy se neprovede 
} 
Proč jsme na konec funkce main () vložili nekonečný cyklus? Za normálních okolností bude funkce 
main () ukončena příkazem return 0, který ukončuje program. V případě robota ASURO však mohou 
v jeho paměti zůstávat a spouštět se části dříve nahraných programů, což může mít vyvolávat zvláštní 
chování. Abychom se vyhnuli provádění částí starých programů, "zachytíme" program po jeho 
provedení do nekonečné smyčky. Tímto způsobem si zabezpečíme, že program skončí 
v nadefinovaném stavu. 
void StatusLED (unsigned char color) 
Stavová LED (D12) se vypne, nebo zapne. Platné hodnoty parametru jsou OFF, GREEN, RED 
nebo YELLOW 
Příklad: 
Stavová LED se zapne a bude svítit červeně: 
StatusLED (RED); 
Kompletní ukázkový program bude vypadat následovně: 
#include „asuro.h“ 
int main(void) { 
Init(); 
StatusLED (YELLOW); 
while(1); // eternal loop 
return 0; 
} 
void FrontLED (unsigned char status) 
Přední LED (D11) se zapne nebo vypne. Platné hodnoty parametru jsou ON a OFF. 
Příklad: 
Přední LED se zapne: 
FrontLED(ON); 
void BackLED (unsigned char left, unsigned char right) 
Zadní LED indikátory (D15 a D16) se zapnou nebo vypnou. První parametr popisuje stav levé zadní 
LED (D15), zatímco druhý parametr popisuje stav zadní LED na pravé straně (D16). Platné hodnoty 
parametru jsou ON a OFF. 
Příklad: 
Zadní LED na pravé straně (D16) se zapne a zadní LED na levé straně (D15) se vypne: 
BackLED(OFF,ON); 










