Cecko pro PICe

andrej jancura hw_aj@zoznam.sk
Čtvrtek Říjen 27 17:00:15 CEST 2005


Ahoj,

PICC je dost sikovny kompilator, musite mat vsak predstavu o tom, ako by 
mal vyzerat prislusny kod v ASM a podla neho napisat kod v C.

Uloha, ktoru potrebujete realizovat sa da asi najrychlejsie realizovat
tym kuskom ASM, ktory ste sam napisal v skorsich prispevkoch. Z hladiska 
kompilatora a efektivity kodu sa jedna o skopirovanie hodnoty bitu, co 
vedie ku krkolomnemu kodu z kompilatora. Nastavenie alebo nulovanie bitov 
je ovela jednoduchsie a kompilator je na tieto typy uloh dost dobre 
optimalizovany. To iste plati o testovani hodnoty bitu.

Takze Vas kod by mohol vyzerat takto:

if(Data & (1<<DATA_4))
   RB0 = 1;
else
   RB0 = 0;

if(Data & (1<<DATA_5))
   RB1 = 1;
else
   RB1 = 0;

atd.

DATA_4, DATA_5 su cisla bitov v premennej Data (obdoba Data & 0x10). Toto 
by mal kompilator vygenerovat ako najkratsie. Vasa verzia s nulovanim 
vsetkych bitov na zaciatku a ich postupnym nastavenim ide tiez, ja vsak moc 
v laske prepinanie hodnot medzi 0 a 1 nemam v oblube.

Na Vasu druhu otazku ohladom CONFIG registra, pozrite si hlavickovy subor 
pre PIC. Je to v nom nadefinovane tiez. Staci iba vlozit, tusim _CONFIG
(HS&WDT) do kodu v C.

A.




Další informace o konferenci Hw-list