H
HeiFelix
Guest
내가 TMR0의 입력 펄스를 세어 RA4에 frequncy 변화를 감지 PIC16F87A를 사용하겠습니다.주변의 센서와 80KHz의 주파수에 따라 OSC 8MHz의입니다.안정적인 매 160ms에서는 펄스의 수를 0x36B5 또는 0x36B6는 주파수를 의미합니다.
나는이 기간에 더 많은 펄스를 하나 또는 두 가지를 감지하려면 가능한 한 빨리.그래서, 난
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, 승
retfieTimer0 인터럽트 서비스 ;;;;;;;;;;;;;;;;;; 대한 ;;;;;;;;;;;;;;;;;;;;;
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
나는이 기간에 더 많은 펄스를 하나 또는 두 가지를 감지하려면 가능한 한 빨리.그래서, 난
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, 승
retfieTimer0 인터럽트 서비스 ;;;;;;;;;;;;;;;;;; 대한 ;;;;;;;;;;;;;;;;;;;;;
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