Program mikroprocesoru
Celý program je postaven na dvou základních blocích a to je A/D převod a generování PWM. Oba dva bloky jsou nastaveny pro tři cesty
(R - červená,G - zelená a B - modrá).
Pro generování PWM signálu jsou požity alternativní možnosti čítače/časovače 1 a 2. Přičemž čítač/časovač 1 umožňuje generování dvou
kanálů PWM. PWM je generováno v režimu fast PWM s 8 bitovým nastavením střídy, dále se používá inverzní mód () a maximální předdělička
1024 (fosc/1024 - jeden takt čítačů/časovačů). Čítače čítají do hodnoty 255, pak přetečou a začínají čítat znovu od nuly. Při přetečení
vynulují piny, na kterých se generují PWM. Při schodě porovnávacích registrů a stavů čítačů se piny nastaví.
Generování PWM funguje nezávisle na běhu programu, jejich řízení je realizováno pomocí změn porovnávacích registrů.
A/D převodník má nastavenou referenci 5 V (dáno zapojením vývojové desky). Využívají se první tři kanály převodníku pro jejichž přepí-
naní jsem vytvořil makra (označeny R_on, G_on a B_on). Frekvence hodin převodníku je nastavena na nejmenší hodnotu pomocí maximální před-
děličky 128 (fA/D=16MHz/128).
Periodické spouštění A/D převodu je realizováno pomocí čítač/časovač 0 s předděličkou 1024 (frekvence měření 16 MHz/(255*1024) =
= 61,27 Hz ->16,3 ms).Na obr. 5 je vidět zjednodušený vývojový diagram programu. Chybí v něm průměrování hodnot ukládaných v poli (pro každou
barvu tři hodnoty) a čítač/časovač 0, který běží v pozadí.
Po startu programu se provede počáteční inicializace, která nastavení potřebné periferii a spustí první převod. Program je postavený tak,
že se vždy změří všechny tři kanály (R, G, B - po doměření jednoho se spustí měření dalšího) a pak se aktualizují registry pro PWM. Další
měření se spustí až přetečením čítače/časovače 0. Mezi jednotlivými měřeními kanálu se cyklicky přepíná vstupní kanál A/D převodníku pomocí
maker (R_on, G_on a B_on). Každým měřením se zvyšuje hodnota pom až po změření všech tři kanálu se vynuluje a čeká se na další měření viz výše.
Celý program doplněný komentáři je ke stažení v sekci download [1].