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 raz runningLight <<= 1; posouvá echny bity v proměnné
runningLight
o jedno místo doleva. Mimochodem: je to jen zkratka razu:
runningLight = runningLight << 1;
která stejně funguje také u razů += a *=.
Proměnná runningLight začí hodnotou 1, která znamená, že je nastaven pouze bit číslo 1.
Kaž 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 jednotlimi 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ázko 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át dialog otázka-a-odpověď, ve kterém robot položí čtyři
jednoduc otázky, a vy byste měli na termilu odpovědět vložením libovol 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ži 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ázko program demonstruje jejich přímé použití. Nyní je mož
zpracovávat vstupy s libovolnou lkou a m lépe reagovat na špatné vstupy.