新會員
Joined
: 2006/1/20 17:15 最後登入時間
: 2014/8/1 16:34
Group:
註冊會員
Level : 1 HP : 0 / 5 MP : 1 / 291 EXP : 21
|
如題我是用CCP模式來讀取一個頻率大概會是在1KHz內 不知那位大大能指點迷津 以下是我所寫的程式(假設沒錯) 總是覺的怪怪的每次讀到的值都不是很接近 我是讀CCPR2L跟CCPR2H內的值出來運算 程式如果有錯那請幫我指出 謝謝
list p=18f452,r=dec #include p18f452.inc W_Temp equ 0x22 STATUS_Temp equ 0x23 BSR_Temp equ 0x24
org 0x00 nop goto Main_Program org 0x08 bra INT_SER org 0x18 bra INT_SER
org 0x30 Main_Program: clrf Time_Flag call Initial call Time_INI Left_Loop: btfss Time_Flag,0,0 goto Left_Loop
Initial: bsf TRISC,1,0
movlw b'10111100' movwf T3CON bsf PIE2,CCP2IE bsf IPR2,CCP2IP bsf RCON,IPEN,0 bsf INTCON,PEIE,0 bsf INTCON,GIE,0 bsf T3CON,TMR3ON movlw b'00000101' movwf CCP2CON,0 return Time_INI: movlw 0xfc movwf TMR3H,0 movlw 0x18 movwf TMR3L,0 return INT_SER: movwf W_Temp,0 movff STATUS,STATUS_Temp movff BSR,BSR_Temp btfss PIR2,CCP2IF btfss PIR1,TMR1IF,0 goto INT_SER_End bcf PIR1,TMR1IF,0 incf Time_Counter,F,0 movlw 0x64 cpfseq Time_Counter,0 goto INT_SER_End clrf Time_Counter,0 bsf Time_Flag,0,0
INT_SER_End: bcf PIR2,CCP2IF bcf PIR2,TMR3IF,0 clrf CCPR2L clrf CCPR2H call Time_INI movff STATUS_Temp,STATUS movff BSR_Temp,BSR movf W_Temp,W,0 retfie end
發表於: 2006/1/20 17:45
|