H
HeiFelix
Guest
私はTMR0の入力パルスを数えることでRA4にfrequncy変化を検出するPIC16F87Aを使用しています。周りのセンサーとは
、 周波数80KHzのOSC 8MHzのですが応じている。安定しているすべての160msでは、パルスの数0x36B5
、 0x36B6の周波数を意味しています。
私はこの時期の他のパルスを検出する1つまたは2つの可能¥な限り迅速に。だから、私は
16 ( X10ms ) consectutive期間は
、 パルスの数を記録するためにFIFOを設定してください。各期間の最後に、私のFIFOの合計を取得し
、 標準との比較。10msの私の変化を検出することができますこのように考えている。しかし
、 最後の160msで、私は合計0x36B3からです0x36B6揺れたが
、 わたしを確認するための基準を得ることができないことを意味します。いくつかのパルスを失ったときに私はそれを記録する必要があります。16X10ms時代
に はどうすればこのような0x35B5または0x35B6として期待される金額を得ることができます
か ?このコードは以下の通りです:
コード:..........;;;;;;;;;;;;;;;;;;割り込みサービス;;;;;;;;;;;;;;;;;;;;;
IntService
movwf W_Temp
swapfワット、 STATUS_Temp
movwf STATUS_Temp
bcf状況、 RP0
btfsc INTCON 、 T0IF
コールIntServiceTimer0
swapf STATUS_Temp 、ワット
movwf状況
swapf W_Tempは、 F
swapf W_Temp 、ワット
retfie;;;;;;;;;;;;;;;;;;割り込みサービスTimer0の;;;;;;;;;;;;;;;;;;;;;
IntServiceTimer0
bcf INTCON 、 T0IF
incf TMR0_Highは、 F
復帰;;;;;;;;;メインプログラム;;;;;;;;
本線
InitialPICコール
InitialDetectorコール
movlw CounterLength
movwf CounterCounter
MainLoop
btfss PIR1 、 TMR2IF : 10msのoverfloe
後藤MainLoop
bcf PIR1 、 TMR2IF
movf TMR0 、ワット
clrf TMR0
movwf TMR0_TempL
movf TMR0_High 、ワット
movwf TMR0_TempH
clrf TMR0_High
............
....... 16x10ms期間の合計をTMR0_TempLとTMR0_TempH使用
.............
とは、特定の動作の変化を検出frequncy .........
後藤MainLoop
、 周波数80KHzのOSC 8MHzのですが応じている。安定しているすべての160msでは、パルスの数0x36B5
、 0x36B6の周波数を意味しています。
私はこの時期の他のパルスを検出する1つまたは2つの可能¥な限り迅速に。だから、私は
16 ( X10ms ) consectutive期間は
、 パルスの数を記録するためにFIFOを設定してください。各期間の最後に、私のFIFOの合計を取得し
、 標準との比較。10msの私の変化を検出することができますこのように考えている。しかし
、 最後の160msで、私は合計0x36B3からです0x36B6揺れたが
、 わたしを確認するための基準を得ることができないことを意味します。いくつかのパルスを失ったときに私はそれを記録する必要があります。16X10ms時代
に はどうすればこのような0x35B5または0x35B6として期待される金額を得ることができます
か ?このコードは以下の通りです:
コード:..........;;;;;;;;;;;;;;;;;;割り込みサービス;;;;;;;;;;;;;;;;;;;;;
IntService
movwf W_Temp
swapfワット、 STATUS_Temp
movwf STATUS_Temp
bcf状況、 RP0
btfsc INTCON 、 T0IF
コールIntServiceTimer0
swapf STATUS_Temp 、ワット
movwf状況
swapf W_Tempは、 F
swapf W_Temp 、ワット
retfie;;;;;;;;;;;;;;;;;;割り込みサービスTimer0の;;;;;;;;;;;;;;;;;;;;;
IntServiceTimer0
bcf INTCON 、 T0IF
incf TMR0_Highは、 F
復帰;;;;;;;;;メインプログラム;;;;;;;;
本線
InitialPICコール
InitialDetectorコール
movlw CounterLength
movwf CounterCounter
MainLoop
btfss PIR1 、 TMR2IF : 10msのoverfloe
後藤MainLoop
bcf PIR1 、 TMR2IF
movf TMR0 、ワット
clrf TMR0
movwf TMR0_TempL
movf TMR0_High 、ワット
movwf TMR0_TempH
clrf TMR0_High
............
....... 16x10ms期間の合計をTMR0_TempLとTMR0_TempH使用
.............
とは、特定の動作の変化を検出frequncy .........
後藤MainLoop