User Manual
62
Někdo může namítnout, že lze v adresáři příkladů RP6 nalézt mnohem atraktivnější program
"Hello World", který obsahuje běžící světlo na LED a nějaké další textové výstupy.
Nyní probereme program z výpisu 1 a vysvětlíme jednotlivé řádky.
Řádek 1 - 3: /* A small and simple "Hello World" C Program for the RP6! */
Jedná se o řádky s komentářem a nebudou interpretovány překladačem. Komentáře se
používají k dokumentaci zdrojového textu; začínají /* a končí */.
Dokumentace pomůže porozumět zápisu programu i ostatním lidem, ale bude užitečný pro
přehlednost vlastních programů, když se k nim po letech vrátíte.
Komentáře mohou být jakkoliv dlouhé nebo “okomentované“ části zdrojových textů budou při
testování jinými programy ignorovány bez ztráty původního kódu. Vedle těchto víceřádkových
komentářů, podporuje GCC také jednořádkové komentáře, které začínají “//”. PO “//” bude
libovolný text, až do konce řádku, interpretován jako komentář.
Řádek 5: #include "RP6RobotBaseLib.h"
Tento řádek vloží do programu knihovnu funkcí RP6, která poskytuje řadu užitečných funkcí a
předem definovaných objektů pro nízkou úroveň řízení hardware. Při vkládání knihoven
používáme takzvané hlavičkové soubory (s příponou “*.h”), které informují kompilátor, kde
hledat příslušné funkce. Hlavičkové soubory se používají pro všechny externí odkazy z
dostupných souborů jazyka C. Pečlivě prostudujte obsah RP6RobotBaseLib.h a
RP6RobotBaseLib.c – mohou objasnit základní principy. V kapitole o pre-procesoru probereme
možnosti direktivy “#include” podrobněji.
Řádek 7: int main(void)
Tento řádek definuje nejdůležitější funkci ukázkového programu: funkci main. Zatím se stále
učíte a podrobně poznáváte funkce, ale právě nyní můžete přijmout myšlenku, že celý program
začíná zde.
Řádek 8 a 12:{ }
V jazyku C se mohou pomocí složených závorek '{' a '}' definovat takzvané “bloky”. Bloky
sdružují několik příkazů.
Řádek 9: initRobotBase();
Zde se volá funkce z knihovny RP6Library. Tato funkce bude inicializovat mikroprocesor AVR a
konfigurovat AVR hardwarové moduly. Většina funkcí napsaných pro mikroprocesor nebude
fungovat správně, pokud neprovedeme inicializaci pomocí funkce initRobotBase(),
nezapomeňte vždy zavolat tuto funkci na začátku programu.
Řádek 10: writeString("Hello World!\n");
Tento řádek volá funkci "writeString" z knihovny RP6Library s parametrem řetězce "Hello
World!\n". Funkce provede výstup textu do sériového rozhraní.