User Manual
110
Drobný detail je, že se světlo pomocí operátoru “posuv doleva” – který se použil v předchozích
příkladech bez vysvětlení:
Význam operátoru vysvětlíme hned. Základ operace posun doleva “<<” (viz řádek 2) je
umožnění posunu bitů v proměnné o definovaný počet míst doleva. Samozřejmě můžeme také
používat ekvivalentní operátor posun doprava “>>”.
To znamená, že výraz runningLight <<= 1; posouvá všechny bity v proměnné
runningLight
o jedno místo doleva. Mimochodem: je to jen zkratka výrazu:
runningLight = runningLight << 1;
která stejně funguje také u výrazů += a *=.
Proměnná runningLight začíná hodnotou 1, která znamená, že je nastaven pouze bit číslo 1.
Každá operace posun způsobí pohyb bitu o jeden krok doleva.
Výsledkem používání proměnné pro ovládání LED bude “posouvání” světelného bodu --> běžící
světlo! Aby lidské oko vnímalo efekt jako běžící světelný bod, používá se funkce mSleep, která
mezi jednotlivými průchody smyčkou generuje zpoždění 100ms.
Pokud se v proměnné runningLight nastaví bit 7 (což znamená, že hodnota > 32), měli bychom
se vrátit na začátek jednoduchým nastavením bitu 1 v proměnné (na řádcích 3 a 4).
Příklad 2: Další aplikace sériového rozhraní
Adresář: <RP6Examples>\RP6BaseExamples\Example_02_UART_01\
Soubor: RP6Base_SerialInterface_01.c
Tento program vyšle hlášení na sériové rozhraní
V tomto ukázkovém programu se robot nepohybuje!
Tento ukázkový program demonstruje používání funkcí writeInteger a writeIntegerLength, které
se použily k výstupu několika celočíselných hodnot v různých formátech přes sériové rozhraní.
Navíc je zde demonstrována nová proměnná “timer” zavedená do knihovny RP6Lib ve verzi
1.3. Může se používat pro měření času s rozlišením 100µs.
Příklad 3: Program otázka-a-odpověď
Adresář: <RP6Examples>\RP6BaseExamples\Example_02_UART_02\
Soubor: RP6Base_SerialInterface_02.c
Tento program bude vysílat hlášení na sériovou linku
V tomto ukázkovém programu se robot nepohybuje!
Poněkud složitější příklad je krátký dialog otázka-a-odpověď, ve kterém robot položí čtyři
jednoduché otázky, a vy byste měli na terminálu odpovědět vložením libovolné odpovědi. Robot
zareaguje textovou zprávou nebo spuštěním krátkého běžícího světla. Program demonstruje,
jak se přijímají data ze sériového rozhraní a použití těchto dat k dalšímu zpracování. Dále se
naučíte používání funkce writeStringLength a je zde také další příklad konstrukce switch-case.
Starší funkce pro příjem dat přes sériové rozhraní nahradily v poslední verzi RP6Lib, mnohem
výkonnější. Tento ukázkový program demonstruje jejich přímé použití. Nyní je možné
zpracovávat vstupy s libovolnou délkou a tím lépe reagovat na špatné vstupy.