Kalibrace interního oscilátoru u PIC12F629

Dobrý den,
nevíte, prosím, někdo, jak se zachází s kalibrační konstantou, uloženou v některých uC? Konkrétně: u PIC12F629 je kalibrační konstanta zřejmě uložena na adrese 0x3FF. Vyplývá to z Template souboru, ve kterém je toto:

; these first 4 instructions are not required if the internal oscillator is not used
call 0x3FF ; retrieve factory calibration value
bsf STATUS,RP0 ; set file register bank to 1
movwf OSCCAL ; update register with factory cal value
bcf STATUS,RP0 ; set file register bank to 0

; remaining code goes here
nop
nop
nop
goto main

; emulate osccal instruction - REMOVE THIS FOR REAL PIC DEVICE!
org 0x3FF
retlw 0x80

Chápu to tak, že po resetu se nejprve provede volání na adresu 0x3FF, kde je uložena kalibrační konstanta (pro každý “kus” jiná), retlw ji ihned vrátí v registru W zpět a vzápětí se vloží do reg. OSCCAL.

Nejsem si však jist, zda rozumím výše uvedené poznámce “REMOVE THIS FOR REAL PIC DEVICE!” nebo spíše bych řekl, že nechápu, proč ty dva řádky pod tímto upozorněním tam vůbec jsou?

Pokud tomu správně rozumím, tak tyto dva řádky:
org 0x3FF
retlw 0x80

tam snad jsou jen jako příklad toho, jak to funguje?

Přece podle mne jediné, co musím po restartu udělat, je toto:

call 0x3FF ;zavolám adresu, na které je uložena kalib. konstanta
bsf STATUS,RP0 ;nastavím banku pro reg. OSCCAL
movwf OSCCAL ;šoupnu do něj kalibrační konstantu
bcf STATUS,RP0 ;přepnu banku zpátky

Prosím, potvrďte mi někdo, že to chápu správně (nebo že kecám :slight_smile:.

Díky.

Vlasťa

Citace z datasheetu, podle něj by to mělo být správně.
Stáhni si manuál přeložený do CZ, tam to máš popsané.

cau, jj chapes to dobre …

ja to mam takle

	BSF	STATUS,RP0
	
	CALL	3FFh		; kalibrace vnitrniho oscilatoru
	MOVWF	OSCCAL
	
	MOVLW	B'00101001'
	MOVWF	TRISIO  
   . 
   .
   BCF	STATUS,RP0

todle je 2 zpusob jak zapsat kalibracni konstantu, protoze nektery programovaci SW neumi pracovat s kalibracni kons. a smazou ti ji pri zapisovani,
pokud pouzivas SW kterej s ni umi pracovat tak to neres

:arrow_right: administrator: příspěvek byl upraven

OK, díky za vysvětlení.

Vl.