OSCCAL u 12F629 a mozna i dalsich

jiri@bezstarosti.cz jiri
Středa Březen 17 14:54:28 CET 2004


Reaguji trochu pozde - dnes mam "malinko zaval" :).

Ma se to tak, ze na posledni pozici pameti programu
je umistena instrukce RETLW XX, tedy callnutim
na onu pozici ziskate hodnotu, ktera se da do OSCCAL.

Historicky to bylo tak, ze PIC12C5xx mely misto toho
na konci pameti MOVLW XX a po resetu se provedla instrukce
na konci programove pameti a pak se jelo od adresy 0.
U novejsich, jako napr. PIC12C67x se pouziva RETLW XX,
po resetu zacina program od adresy 0 a pro tu hodnotu
je potreba si callnout.

U PIC12F6xx se vyplati to delat tak, ze bud je v nem program
a tedy i kalibracni konstanta (a bandgap bity) a nebo
je smazan a vyprogramovan ciste jen s temito hodnotami.
Tedy je spatne nechat jej valet bez techto hodnot, ale
jak jej smazete, je potreba je ihned vratit naprogramovanim
zpet. Pak se Vam nestane, ze sahnete pro PIC a hodnoty
nejsou :). Disasemblovat nic netreba, jsou to z tohoto
pohledu jen ta spravna (puvodni) cisla do spravnych mist :)

Ale ja zatim tech PIC12F6xx moc v ruce nemel, tedy jen
pisu jak by to melo byt, protoze u prvniho kusu PIC12F629
jsem hned o vsechny hodnoty prisel - stacilo ze mi necetl
a nezapisoval dobre programator :). Takze ten kousek mam
tak k pouziti s krystalem a bez presnejsi interni reference
pro komparator (bandgap), coz ovsem leckde nevadi a zkouseci
kousek si vzdycky uzije svoje :).

--
Jiri Bezstarosti




Další informace o konferenci Hw-list