Re: ADC轉換3
|
||||
---|---|---|---|---|
資深會員
|
TIMER1 + SOFT DELAY 看的 眼花花的
很難看出你想表達什麼 , 我在想一個月後你自己是否還看的懂自己寫的程式 Attach file: Link only for registered users
發表於: 2009/6/21 4:12
|
|||
|
Re: ADC轉換3
|
||||
---|---|---|---|---|
資深會員
|
依照大大們給的提示小弟修改了,照理應該會有結果了..怪^^!!!
-------------------------------------------------------------------------- 你很煩耶 ! 程式落落長 又不曉得你要問的重點是什麼?? 可不可以程式另外上傳, 不然光整理又要老半天....... OR MAIL TO ME DATA SHEET 多看一點 , ADC 的取樣時間只要 12 uS ; 太多無益 (TABLE 12-9: PIC12F675 A/D CONVERSION REQUIREMENTS) btfsc ADCON0,GO goto Wait1 movlw ADRESH ; ----- XXXXXXX movf ADRESH , W ; -------VVVVV ADRESH 不用清除
發表於: 2009/6/21 1:58
Edited by Beee on 2009年06月21日 02:15:38
|
|||
|
ADC轉換3
|
||||
---|---|---|---|---|
新會員
|
依照大大們給的提示小弟修改了,照理應該會有結果了..怪^^!!!
list p=12f675 include <P12f675.INC> __CONFIG _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_OFF ADStatus EQU 0x20 W_temp EQU 0x21 STATUS_Temp EQU 0x22 scaler EQU 0x27 Delay1 EQU 0x23 Delay2 EQU 0x24 Delay3 EQU 0x25 ADStatus1 EQU 0x26 Countms EQU 0x30 ADCloop EQU 0x31 ADloop_scaler EQU 0x32 change EQU 0x33 T1HCAP_1 EQU 0x34 T1LCAP_1 EQU 0x35 T1HCAP_2 EQU 0x36 T1LCAP_2 EQU 0x37 ;***********Resect Vector*************** org 0x00 nop goto MainLine ;************ interrupt ************** org 0x04 goto intService intService movwf W_temp swapf STATUS,w movwf STATUS_Temp btfsc PIR1,TMR1IF call Timer1 swapf STATUS_Temp,w movwf STATUS swapf W_temp,f swapf W_temp,w retfie ;********** Timer1 *************** Timer1 bcf PIR1,TMR1IF decf scaler,f clrf TMR1L movlw T1HCAP_2 movwf TMR1H movlw T1LCAP_2 movwf TMR1L return ;********** Main Program *************** MainLine call Initial MainLoop bcf STATUS,RP0 bsf T1CON,TMR1ON call ADconverter call turn goto MainLoop ;*************************************** turn movlw .2 movwf scaler turn_off bcf STATUS,RP0 bcf GPIO,GP5 btfss scaler,0 goto turn_off bsf GPIO,GP5 btfsc scaler,0 goto turn_on btfsc GPIO,GP2 goto turn call ADloop_time call ADloop_time call ADloop_time return ;*********Initial Subroutine************ Initial bsf STATUS,RP0 ;Bank clrf TRISIO ;Init GPIO movlw B'00010100' movwf TRISIO bcf STATUS,RP0 movlw 07h movwf CMCON bcf STATUS,RP0 bsf GPIO,GP2 clrf T1CON clrf TMR1H clrf TMR1L clrf INTCON bsf INTCON,PEIE bsf STATUS,RP0 clrf PIE1 bsf PIE1,TMR1IE bcf STATUS,RP0 clrf PIR1 clrf TMR1L movlw 0x15 movwf TMR1H movlw 0x9F movwf TMR1L bcf T1CON,TMR1ON bsf INTCON,GIE bsf STATUS,RP0 clrf ADRESL movlw B'00011000' movwf ANSEL bcf STATUS,RP0 clrf ADCON0 movlw B'00001101' movwf ADCON0 clrf ADRESH return ;************A/D converter************** ADconverter movlw .2 movwf ADCloop ADconverter1 call ADloop_time call ADloop_time call ADloop_time call ADloop_time call ADloop_time call ADloop_time bcf STATUS,RP0 bsf ADCON0,GO call ADloop_time call ADloop_time Wait1 btfsc ADCON0,GO goto Wait1 movlw ADRESH movwf Countms movlw (.65536 - Countms)/.256 decfsz ADCloop,F btfss ADCloop,0 btfsc ADCloop,0 goto savetemp movwf T1HCAP_2 xorwf T1HCAP_1,F btfss STATUS,Z goto ADconverter call Wait2 return savetemp movwf T1HCAP_1 goto ADconverter1 Wait2 movlw (.65536 - Countms)%.256 movwf T1LCAP_2 return ;------------------------------------------------------------------------------ ; ADloop_time ;------------------------------------------------------------------------------ Delay1ms: movlw .198 movwf Delay1 Delay1ms_01: decfsz Delay1, F goto Delay1ms_01 return ADloop_time movlw .100 movwf ADloop_scaler ADloop_time1 call Delay1ms decfsz ADloop_scaler,F goto ADloop_time1 return end
發表於: 2009/6/20 23:32
|
|||
|