Generovani kmitoctu

Snail Instruments snail
Středa Březen 17 14:26:46 CET 2004


>mam takovy dotaz:Potrebuju neco(asi nejlip jednocip) co by mi bylo schopne
>vyrobit kmitocty 117,5Hz a 274.1Hz Nechci je najednou,staci prepinatelne na
>nejakem vstupu. Udelal jsem to zatim na 89C2015,ale ten je zbytecne

Je celkem nepravdepodobne, ze by PIC zklamal tam, kde vyhovi 89C2051. V programu se bude jednat prevazne o trpelive pocitani instrukci. Bylo by treba pridat konkretni ciselny udaj ke slovum 'pomerne presne', aby bylo mozne posoudit, jestli nastineny zpusob povede k cili.

Zkusil jsem program pro krystal 4MHz (instrukce 1usec). Odchylka vysledneho kmitoctu pri delicim pomeru 3648 (namisto presneho 3648.30) je 83ppm, pro delici pomer 8511 (namisto 8510.638) je -42ppm. K tomu se pricita odchylka krystalu od jmenoviteho kmitoctu. Je mozne, ze jine kmitocty krystalu by se 'trefily' presneji k celociselnum delitelum.

;pro 117.5Hz: 8511=4255+4256 instrukci, x1=5 y1=134, x2=5 y2=133, 2 nops
;pro 274.1Hz: 3648=1824+1824 instrukci, x1=.... uz se mi to nechce pocitat

main:
bsf	port,pin	;5
movlw	x1
movwf	cnt0
movlw	y1
movwf	cnt1

l1:
decfsz	cnt1		;(y1*3-1) + (x1-1)*(256*3-1)
goto	l1

decfsz	cnt0		;3*x1 - 1
goto	l1

bcf	port,pin	;5
movlw	x2
movwf	cnt0
movlw	y2
movwf	cnt1

l2:
decfsz	cnt1
goto	l2
decfsz	cnt0
goto	l2

			;0-2 nops as needed
nop			;4 
nop
goto	main

J. Hanzal





Další informace o konferenci Hw-list