0

PIC18(L)F1XK22 を使用しています。タイマー 3 を同期カウンターとして使用しようとしています。

PIC は内部発振器を使用して動作しています。

CONFIG  FOSC    = IRC       ; Internal oscillator

これにより、ピン RA5 の外部オシレータとしての使用がオフになります。

T1CON の T1OSCEN は 0、T3CON の TMR3CS は 1 です。RA5 TRIS ビットをセットし、RA5 WPU ビットをクリアしました。

私の問題は、ピン RA5 (T13CLKI) がアクティブなプルアップを持っているか、何かによって駆動されているように見えることです。

RA5 の前に次の抵抗ネットワークがあります。

+5---10K------X-----24K----->RA5

ポイント X は、ホール効果センサーによって駆動されます。X が 0 ボルトの場合、RA5 は 2.2 ボルトです。24K 抵抗を 10K に減らすと、X が 1.1 ボルトに減少します。カウンターが機能する前に、抵抗を約 4K に減らす必要があります。

タイマーを設定するために使用したコードは次のとおりです...

#define TM3CK_TRIS    TRISA,TRISA5,A  
#define TM3CK_WPU     WPUA,WPUA5,A

        BCF         PIE2,TMR3IE,A       ; Disable Timer3 interrupt

        BSF         TM3CK_TRIS          ; set RA5 (T13CKI) as input

        BCF         TM3CK_WPU           ; disable weak pull up on RA5
                                        ;  pull up and isolation resistor are external

        CLRF        TMR3H,A             ; clear Timer 3
        CLRF        TMR3L,A

        MOVLW       0x8F                ; 1xxx xxxx RD16    16 bit read/write
                                        ; x0xx xxxx         unused bit
                                        ; xx00 xxxx T3CKPS  1:1 prescale
                                        ; xxxx 1xxx T3CCP1  something to do with comparators 
                                        ; xxxx x1xx T3SYNC  Do not sychronize with external clock
                                        ; xxxx xx1x TMR3CS  external clock from RA5 (T13CKI)
                                        ; xxxx xxx1 TMR3ON  enable timer
        MOVWF       T3CON,A

        BCF         TM3CK_WPU       
        BSF         INTCON2,RABPU,A     ; disable all pull ups

最後の 2 行は、タイマーが開始された後にすべてのプルアップをオフにする無駄な試みで追加されました。

どんな助けやアイデアも大歓迎です。

4

1 に答える 1

0

破損した PIC チップがあり、スペアに交換したところ、問題は解決しました。

于 2013-01-05T19:05:20.573 に答える