Mikroprocesorova Technika, 10. tyzden
Demonstracia obsluhy GPIO (General Purpose Input / Output) 
na procesore Freescale ColdFire MCF52233


Ciel:
Princip ovladania periferie GPIO v rezime vystupu (rozblikanie LED) 
a vytvorenie casovej slucky pomocou casovaca


Strany v "Reference Manual" MCF52235RM.pdf: 205-220

main.c
------------------------------------------
Kod demonstuje vyuzitie periferie GPIO v rezime vystupu pre riadenie 
rozsvecovania LED diod. Cakanie medzi prebliknutim je realizovane 
pomocou casovaca DTIM3

ULOHY:
------
a) ODSIMULUJTE A OVERTE SPRAVNOST PROGRAMU
b) VYSKUSAJTE LADENIE V RAM
c) VYSKUSAJTE LADENIE VO FLASH

Sekvencia rozsvecovavnia LED je znazornen v nasledujcej tabulke:

------------------------------------------------
hodnota v PORTTC    LED4    LED3    LED2    LED1
binar.	    hex.
------------------------------------------------
0b00000001  0x01    vyp	    vyp	    vyp	    zap
0b00000010  0x02    vyp	    vyp	    zap	    vyp
0b00000100  0x04    vyp	    zap	    vyp	    vyp
0b00001000  0x08    zap     vyp	    vyp	    vyp	
0b00000100  0x04    vyp	    zap	    vyp	    vyp
0b00000010  0x02    vyp	    vyp	    zap	    vyp
0b00000001  0x01    vyp	    vyp	    vyp	    zap
------------------------------------------------

V uvode programu su realizovane redeklaracie I/O registrov a su 
zavedene konstanty kvoli lepsej prehladnosti programu

Nasleduje funkcia void cpu_pause(int usecs), pomocou ktore je realizovane
cakanie medzi dvoma roznymi konfiguraciami LED. Tato funkcia vyuziva
casovac DTIM3, ktory je nazaciatku inicializovany pre pozadovanu funkciu,
nasledne sa caka kym uplynie nastaveny cas a nakoniec sa cela periferia 
deaktivuje

Nasleduje funkcia int main(void)
V jej uvode su inicializovane piny, kde su pripojene LED tak, aby mohli byt
tieto LED ovladane procesorom, teda piny su konfigurovane ako GPIO, piny 
su nastavene ako vystupne a vsetky LED sa pre poriadok vypnu.

V nekonecnej slucke je riadenie LED realizovane v dvoch cykloch:
prvy posuva zasvieteny bod do lava a druhy rozsvieteny bod nasledne posunie
naspet doprava

