Discussione: Aiuto pic16f84
Visualizza messaggio singolo
Vecchio 09 novembre 05, 19:23   #6 (permalink)  Top
Claudio_F
User
 
L'avatar di Claudio_F
 
Data registr.: 02-04-2005
Messaggi: 2.050
Tratto da questo listato per PIC a 8MHz. CH e CL sono due generici registri a 8 bit, PCMCH3 e' l'alias di un pin di ingresso collegato ad un canale della ricevente. Alla fine in W abbiamo un valore pari a 128 con stick al centro e via via +/-4µS per ogni unita' in piu' o in meno.

Codice:
;-----------------------------------------------------------------------
; Misura ingresso PPM CANALE 3
; Risoluzione 4uS, conteggio 16 bit in CH:CL
;-----------------------------------------------------------------------

PPM_CH3  CLRF    CL      ;azzera conteggio
      CLRF    CH
      BTFSS    PPMCH3    ;attende impulso
      GOTO    $-1
      INCF    CL,F
      BTFSS    STATUS,Z
      GOTO    $+2
      INCF    CH,F
      NOP
      BTFSC    PPMCH3
      GOTO    $-6
      CALL    NORMCHCL
      RETURN

;-----------------------------------------------------------------------
; Normalizzazione conteggio 16 bit in valore 8 bit,
; il risultato e' ritornato in W.
; <988uS         =  0
; 1,0mS = 250 +/-1  -247 =  3 +/-1
; 1,5mS = 375 +/-1  -247 = 128 +/-1
; 2,0mS = 500 +/-1  -247 = 253 +/-1
; >2,008mS        = 255
;
; CH:CL = CH:CL - 247
; IF (CH < 0) THEN   RESULT = 0
; ELSE IF (CH = 0) THEN RESULT = CL
; ELSE         RESULT = 255
;-----------------------------------------------------------------------

NORMCHCL  MOVLW    247
      SUBWF    CL,F
      BTFSS    STATUS,C
      DECF    CH,F
      BTFSC    CH,7
      RETLW    0
      MOVF    CH,F
      BTFSS    STATUS,Z
      RETLW    255
      MOVF    CL,W
      RETURN
Claudio_F non è collegato   Rispondi citando