Autor Tema: Problema con codigo de protector de voltage, se activa en un rango muy estrecho  (Leído 1345 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado DanielPicM

  • PIC10
  • *
  • Mensajes: 1
; Generated by PicProm.exe

        LIST    p=12F615, r=DEC  ; define processor, decimal radix
        #INCLUDE <p12F615.inc>

        ORG     2007h            ; control word(s)
        dw      3CF4h

;============================ CODE
Reg040   EQU   040h
Reg041   EQU   041h
Reg042   EQU   042h
Reg043   EQU   043h
Reg044   EQU   044h
Reg045   EQU   045h
Reg046   EQU   046h
Reg047   EQU   047h
Reg048   EQU   048h
Reg049   EQU   049h
Reg04A   EQU   04Ah
Reg04B   EQU   04Bh
Reg04C   EQU   04Ch
Reg04D   EQU   04Dh
Reg04E   EQU   04Eh
Reg04F   EQU   04Fh
Reg050   EQU   050h
Reg051   EQU   051h
Reg052   EQU   052h
Reg053   EQU   053h
Reg054   EQU   054h
Reg055   EQU   055h
Reg056   EQU   056h
Reg057   EQU   057h
Reg058   EQU   058h
Reg059   EQU   059h
Reg05A   EQU   05Ah
Reg05B   EQU   05Bh
Reg05C   EQU   05Ch
Reg05D   EQU   05Dh
Reg05E   EQU   05Eh
Reg05F   EQU   05Fh
Reg060   EQU   060h
Reg061   EQU   061h
Reg062   EQU   062h
Reg063   EQU   063h
Reg064   EQU   064h
Reg065   EQU   065h
Reg066   EQU   066h
Reg067   EQU   067h

        ORG     0000h
        nop                      ; program entry
        movwf   PCLATH           ; Page0
        goto    L029B
;-----------------------------
        nop                      ; dead code?
;-----------------------------

        ORG     0004h
        btfsc   STATUS,RP0       ; INT entry
        goto    L000A
        movwf   Reg044
        swapf   STATUS,w
        movwf   Reg045
        goto    L000F
;-----------------------------
L000A   bcf     STATUS,RP0       ; Bank0
        movwf   Reg044          ;copio el valor de w a f(reg044)
        swapf   STATUS,w
        movwf   Reg045          ;copio el valor de w a f(reg045)
        bsf     Reg045,1   ;pongo un 1 en reg045 el pin en bit 1
L000F   movf    PCLATH,w ; pone el valor de PCLATH en w
        movwf   Reg04B   ;mueve pclath a reg04b
        clrf    PCLATH           ; Page0
        bcf     STATUS,IRP ;me muevo a banco 0
        swapf   Reg044,f
        movf    FSR,w
        movwf   Reg046
        movf    Reg040,w
        movwf   Reg047
        movf    Reg041,w
        movwf   Reg048
        movf    Reg042,w
        movwf   Reg049
        movf    Reg043,w
        movwf   Reg04A
        bcf     STATUS,RP0       ; Bank0
        movlw   08Ch             ; b'10001100' d'140'
        movwf   FSR
        btfss   INDF,0
        goto    L0025
        btfsc   PIR1,TMR1IF
        goto    L0038
L0025   movf    Reg046,w
        movwf   FSR
        movf    Reg047,w
        movwf   Reg040
        movf    Reg048,w
        movwf   Reg041
        movf    Reg049,w
        movwf   Reg042
        movf    Reg04A,w
        movwf   Reg043
        movf    Reg04B,w
        movwf   PCLATH           ; Page0
        swapf   Reg045,w
        movwf   STATUS           ; Bank0
        bcf     STATUS,RP0       ; Bank0
        swapf   Reg044,w
        btfsc   Reg045,1
        bsf     STATUS,RP0       ; Bank1
        retfie
;-----------------------------
L0038   clrf    TMR1H
        movlw   001h             ; b'00000001' d'001'
        movwf   TMR1L            ;TMR1L-PCON
        bsf     Reg055,1
        clrf    Reg04D
        incf    Reg04E,f
        btfsc   STATUS,Z
        incf    Reg04F,f
        incf    Reg050,f
        movf    Reg050,w
        sublw   002h            ; b'00000010' d'002'
        btfss   STATUS,Z
        goto    L004A
        clrf    Reg050
        movlw   001h           ;b'00000010' d'002'
        xorwf   GPIO,f          ; GPIO-TRISIO
        movlw   010h            ;b'00010000' d'016'
        xorwf   GPIO,f          ; GPIO-TRISIO
L004A   movf    Reg04E,w       
        movwf   Reg040
        movf    Reg04F,w
        movwf   Reg043
        movlw   004h            ; b'00000100' d'004'
        subwf   Reg043,w
        btfss   STATUS,Z
        goto    L0055
        movlw   022h            ; b'00100010' d'034'
        subwf   Reg040,w
        btfss   STATUS,Z
L0055   goto    L0062
        bcf     Reg055,0
        bcf     Reg055,1
        bsf     STATUS,RP0       ; Bank1
        bcf     PIE1,TMR1IE      ; PIR1-PIE1
        bcf     STATUS,RP0       ; Bank0
        bcf     INTCON,PEIE
L005C   bcf     INTCON,GIE
        btfsc   INTCON,GIE
        goto    L005C
        clrf    Reg04F
        clrf    Reg04E
        goto    L0062
L0062   bcf     PIR1,TMR1IF
        bcf     PCLATH,3         ; Page0
        goto    L0025
;-----------------------------
L0065   movlw   058h                ;88 0101 1000
        movwf   FSR
        movf    INDF,w
        btfsc   STATUS,Z
        goto    L0077
L006A   movlw   002h               ;2  0000 0010
        movwf   Reg041
L006C   clrf    Reg040
L006D   decfsz  Reg040,f
        goto    L006D
        decfsz  Reg041,f
        goto    L006C
        movlw   097h                ;151 1001 0111
        movwf   Reg040
L0073   decfsz  Reg040,f
        goto    L0073
        decfsz  INDF,f
        goto    L006A
L0077   return
;-----------------------------
L0078   bcf     ADCON0,VCFG
        bsf     STATUS,RP0       ; Bank1
        bcf     ANSEL,0
        bcf     ANSEL,1
        bsf     ANSEL,2     ;habilita lectura analogic del pin
        bcf     ANSEL,3
        bsf     ANSEL,ADCS0
        bsf     ANSEL,ADCS1
        bcf     ANSEL,ADCS2
        bcf     STATUS,RP0       ; Bank0
        bcf     ADCON0,ADFM
        bsf     ADCON0,ADON      ;comienza la conversion A/D
        bsf     STATUS,RP0       ; Bank1
        movf    OPTION_REG,w  ;?
        andlw   0C0h              ;192 1100 0000
        iorlw   007h              ;7   0000 0111
        movwf   OPTION_REG
        bcf     APFCON,T1GSEL
        movlw   035h              ;53   0011 0101
        bcf     STATUS,RP0       ; Bank0
        movwf   T1CON
        clrf    CMCON0
        clrf    CMCON1
        movlw   004h             ;4 0000 0100
        bsf     STATUS,RP0       ; Bank1
        movwf   TRISIO
        bcf     STATUS,RP0       ; Bank0
        bcf     GPIO,5           ; driver relay
        bsf     GPIO,4           ; enciende led Rojo
        bsf     GPIO,0           ; enciende led verde
        clrf    Reg056
L0097   movf    Reg056,w
        sublw   002h             ;2  0000 0010
        btfss   STATUS,C
        goto    L00AD
        bcf     GPIO,4           ;apaga led rojo
        movlw   002h             ;2   0000 0010
        movwf   Reg057
L009E   movlw   0FAh             ;250  1111 1010
        movwf   Reg058
        call    L0065
        decfsz  Reg057,f
        goto    L009E
        bsf     GPIO,4           ;enciende led rojo
        movlw   002h             ;2  0000 0010

        movwf   Reg057
L00A6   movlw   0FAh             ;250   1111 1010
        movwf   Reg058
        call    L0065
        decfsz  Reg057,f
        goto    L00A6
        incf    Reg056,f
        goto    L0097
;-----------------------------
L00AD   bcf     GPIO,5          ;desactiva driver relay
        bsf     GPIO,4          ;activa led rojo
        bsf     GPIO,0          ;activa led verde
        bsf     Reg055,0
        clrf    Reg04F
        clrf    Reg04E
        clrf    Reg04D
        bcf     Reg055,1
        clrf    Reg050
        bcf     Reg055,2
        goto    L02AD
;-----------------------------
L00B8   clrf    Reg04C
        movlw   008h             ;8  0000 1000
        movwf   Reg041
        movf    ADCON0,w
        andlw   0E3h              ;227  1110 0011
        iorwf   Reg041,w
        movwf   ADCON0
        movlw   003h              ;3  0000 0011
        movwf   Reg040
L00C1   decfsz  Reg040,f
        goto    L00C1
        bsf     ADCON0,GO_DONE
L00C4   btfsc   ADCON0,GO_DONE
        goto    L00C4
        movf    ADRESH,w
        movwf   Reg04C
        clrf    Reg057
        movf    Reg04C,w
        movwf   Reg056
        movlw   08Eh             ;142   1000 1110
        movwf   Reg040
        movf    Reg057,w
        movwf   Reg041
        movf    Reg056,w
        movwf   Reg042
        clrf    Reg043
        movf    Reg041,f
        btfss   STATUS,Z
        goto    L00DF
        movf    Reg042,w
        movwf   Reg041
        clrf    Reg042
        movlw   008h           ;8 0000 1000
        subwf   Reg040,f
        movf    Reg041,f
        btfss   STATUS,Z
        goto    L00DF
        clrf    Reg040
        goto    L00E7
;-----------------------------
L00DF   bcf     STATUS,C
        btfsc   Reg041,7
        goto    L00E6
        rlf     Reg042,f
        rlf     Reg041,f
        decf    Reg040,f
        goto    L00DF
;-----------------------------
L00E6   bcf     Reg041,7
L00E7   movf    Reg043,w
        movwf   Reg059
        movf    Reg042,w
        movwf   Reg058
        movf    Reg041,w
        movwf   Reg057
        movf    Reg040,w
        movwf   Reg056
        clrf    Reg05D
        clrf    Reg05C
        movlw   020h         ;32 0010 0000
        movwf   Reg05B
        movlw   081h          ;129  1000 0001
        movwf   Reg05A
        movf    Reg056,w
        btfsc   STATUS,Z
        goto    L0165
        movwf   Reg05E
        movf    Reg05A,w
        btfsc   STATUS,Z
        goto    L0165
        addwf   Reg05E,f
        btfsc   STATUS,C
        goto    L0106
        movlw   07Fh                  ;127  0111 1111
        subwf   Reg05E,f
        btfss   STATUS,C
        goto    L0165
        btfsc   STATUS,Z
        goto    L0165
        goto    L010A
;-----------------------------
L0106   movlw   081h                   ;129  1000 0001
        addwf   Reg05E,f
        btfsc   STATUS,C
        goto    L0165
L010A   movf    Reg05E,w
        movwf   Reg040
        clrf    Reg041
        clrf    Reg042
        clrf    Reg043
        movf    Reg057,w
        movwf   Reg062
        bsf     Reg062,7
        movf    Reg058,w
        movwf   Reg061
        movf    Reg059,w
        movwf   Reg060
        movlw   018h                  ;24   0001 1000
        movwf   Reg05E
L0118   clrf    Reg05F
        btfss   Reg060,0
        goto    L0133
        movf    Reg05D,w
        addwf   Reg043,f
        btfss   STATUS,C
        goto    L0125
        incf    Reg042,f
        btfss   STATUS,Z
        goto    L0125
        incf    Reg041,f
        btfsc   STATUS,Z
        bsf     Reg05F,7
L0125   movf    Reg05C,w
        addwf   Reg042,f
        btfss   STATUS,C
        goto    L012C
        incf    Reg041,f
        btfsc   STATUS,Z
        bsf     Reg05F,7
L012C   movf    Reg05B,w
        movwf   Reg058
        bsf     Reg058,7
        movf    Reg058,w
        addwf   Reg041,f
        btfsc   STATUS,C
        bsf     Reg05F,7
L0133   rlf     Reg05F,f
        rrf     Reg041,f
        rrf     Reg042,f
        rrf     Reg043,f
        rrf     Reg062,f
        rrf     Reg061,f
        rrf     Reg060,f
        bcf     STATUS,C
        decfsz  Reg05E,f
        goto    L0118
        movlw   001h               ;1    0000 0001
        addwf   Reg040,f
        btfsc   STATUS,C
        goto    L0165
        btfsc   Reg041,7
        goto    L014A
        rlf     Reg062,f
        rlf     Reg043,f
        rlf     Reg042,f
        rlf     Reg041,f
        decf    Reg040,f
        btfsc   STATUS,Z
        goto    L0165
L014A   btfss   Reg062,7
        goto    L015B
        incf    Reg043,f
        btfss   STATUS,Z
        goto    L015B
        incf    Reg042,f
        btfss   STATUS,Z
        goto    L015B
        incf    Reg041,f
        btfss   STATUS,Z
        goto    L015B
        rrf     Reg041,f
        rrf     Reg042,f
        rrf     Reg043,f
        incf    Reg040,f
        btfsc   STATUS,Z
        goto    L0165
L015B   movf    Reg057,w
        movwf   Reg05F
        movf    Reg05B,w
        xorwf   Reg05F,f
        btfss   Reg05F,7
        goto    L0163
        bsf     Reg041,7
        goto    L0169
;-----------------------------
L0163   bcf     Reg041,7
        goto    L0169
;-----------------------------
L0165   clrf    Reg040
        clrf    Reg041
        clrf    Reg042
        clrf    Reg043
L0169   movf    Reg040,w
        movwf   Reg056
        movf    Reg041,w
        movwf   Reg057
        movf    Reg042,w
        movwf   Reg058
        movf    Reg043,w
        movwf   Reg059
        movf    Reg059,w
        movwf   Reg05D
        movf    Reg058,w
        movwf   Reg05C
        movf    Reg057,w
        movwf   Reg05B
        movf    Reg056,w
        movwf   Reg05A
        clrf    Reg061
        clrf    Reg060
        movlw   07Fh           ;127            0111 1111
        movwf   Reg05F
        movlw   086h           ;134            1000 0110
        movwf   Reg05E
        movf    Reg05A,w
        btfsc   STATUS,Z
        goto    L0244
        movwf   Reg066
        movf    Reg05E,w
        btfsc   STATUS,Z
        goto    L0244
        subwf   Reg066,f
        btfss   STATUS,C
        goto    L018E
        movlw   07Fh           ;127      0111 1111
        addwf   Reg066,f
        btfsc   STATUS,C
        goto    L0244
        goto    L0194
;-----------------------------
L018E   movlw   081h            ;129    1000 0001
        subwf   Reg066,f
        btfss   STATUS,C
        goto    L0244
        btfsc   STATUS,Z
        goto    L0244
L0194   movf    Reg066,w
        movwf   Reg040
        clrf    Reg041
        clrf    Reg042
        clrf    Reg043
        clrf    Reg065
        movf    Reg05B,w
        movwf   Reg064
        bsf     Reg064,7
        movf    Reg05C,w
        movwf   Reg063
        movf    Reg05D,w
        movwf   Reg062
        movlw   019h          ;25    0001 1001
        movwf   Reg066
L01A3   movf    Reg061,w
        subwf   Reg062,f
        btfsc   STATUS,C
        goto    L01B7
        movlw   001h           ;1   0000 0001
        subwf   Reg063,f
        btfsc   STATUS,C
        goto    L01B7
        subwf   Reg064,f
        btfsc   STATUS,C
        goto    L01B7
        subwf   Reg065,f
        btfsc   STATUS,C
        goto    L01B7
        incf    Reg065,f
        incf    Reg064,f
        incf    Reg063,f
        movf    Reg061,w
        addwf   Reg062,f
        goto    L01E9
;-----------------------------
L01B7   movf    Reg060,w
        subwf   Reg063,f
        btfsc   STATUS,C
        goto    L01D2
        movlw   001h                     ;1    0000 0001
        subwf   Reg064,f
        btfsc   STATUS,C
        goto    L01D2
        subwf   Reg065,f
        btfsc   STATUS,C
        goto    L01D2
        incf    Reg065,f
        incf    Reg064,f
        movf    Reg060,w
        addwf   Reg063,f
L01C6   movf    Reg061,w
        addwf   Reg062,f
        btfss   STATUS,C
        goto    L01E9
        incf    Reg063,f
        btfss   STATUS,Z
        goto    L01E9
        incf    Reg064,f
        btfss   STATUS,Z
        goto    L01E9
        incf    Reg065,f
        goto    L01E9
;-----------------------------
L01D2   movf    Reg05F,w
        iorlw   080h               ;128    1000 0000
        subwf   Reg064,f
        btfsc   STATUS,C
        goto    L01E8
        movlw   001h                ;1    0000 0001
        subwf   Reg065,f
        btfsc   STATUS,C
        goto    L01E8
        incf    Reg065,f
        movf    Reg05F,w
        iorlw   080h                ;128  1000 0000
        addwf   Reg064,f
        movf    Reg060,w
        addwf   Reg063,f
        btfss   STATUS,C
        goto    L01C6
        incf    Reg064,f
        btfss   STATUS,Z
        goto    L01C6
        incf    Reg065,f
        goto    L01C6
;-----------------------------
L01E8   bsf     Reg043,0
L01E9   decfsz  Reg066,f
        goto    L01EC
        goto    L01F7
;-----------------------------
L01EC   bcf     STATUS,C
        rlf     Reg062,f
        rlf     Reg063,f
        rlf     Reg064,f
        rlf     Reg065,f
        bcf     STATUS,C
        rlf     Reg043,f
        rlf     Reg042,f
        rlf     Reg041,f
        rlf     Reg067,f
        goto    L01A3
;-----------------------------
L01F7   btfss   Reg067,0
        goto    L01FF
        bcf     STATUS,C
        rrf     Reg041,f
        rrf     Reg042,f
        rrf     Reg043,f
        rrf     Reg067,f
        goto    L0202
;-----------------------------
L01FF   decf    Reg040,f
        btfsc   STATUS,Z
        goto    L0244
L0202   btfsc   Reg067,7
        goto    L022B
        bcf     STATUS,C
        rlf     Reg062,f
        rlf     Reg063,f
        rlf     Reg064,f
        rlf     Reg065,f
        movf    Reg061,w
        subwf   Reg062,f
        btfsc   STATUS,C
        goto    L0217
        movlw   001h            ;1   0000 0001
        subwf   Reg063,f
        btfsc   STATUS,C
        goto    L0217
        subwf   Reg064,f
        btfsc   STATUS,C
        goto    L0217
        subwf   Reg065,f
        btfss   STATUS,C
        goto    L023A
L0217   movf    Reg060,w
        subwf   Reg063,f
        btfsc   STATUS,C
        goto    L0222
        movlw   001h             ;1   0000 0001
        subwf   Reg064,f
        btfsc   STATUS,C
        goto    L0222
        subwf   Reg065,f
        btfss   STATUS,C
        goto    L023A
L0222   movf    Reg05F,w
        iorlw   080h              ;128   1000 0000
        subwf   Reg064,f
        btfsc   STATUS,C
        goto    L022B
        movlw   001h              ;1    0000 0001
        subwf   Reg065,f
        btfss   STATUS,C
        goto    L023A
L022B   incf    Reg043,f
        btfss   STATUS,Z
        goto    L023A
        incf    Reg042,f
        btfss   STATUS,Z
        goto    L023A
        incf    Reg041,f
        btfss   STATUS,Z
        goto    L023A
        incf    Reg040,f
        btfsc   STATUS,Z
        goto    L0244
        rrf     Reg041,f
        rrf     Reg042,f
        rrf     Reg043,f
L023A   movf    Reg05B,w
        movwf   Reg066
        movf    Reg05F,w
        xorwf   Reg066,f
        btfss   Reg066,7
        goto    L0242
        bsf     Reg041,7
        goto    L0248
;-----------------------------
L0242   bcf     Reg041,7
        goto    L0248
;-----------------------------
L0244   clrf    Reg040
        clrf    Reg041
        clrf    Reg042
        clrf    Reg043
L0248   movf    Reg043,w
        movwf   Reg054
        movf    Reg042,w
        movwf   Reg053
        movf    Reg041,w
        movwf   Reg052
        movf    Reg040,w
        movwf   Reg051
        return
;-----------------------------
L0251   movf    Reg057,w
        movwf   Reg05E
        movf    Reg05B,w
        xorwf   Reg05E,f
        btfss   Reg05E,7
        goto    L025C
        bcf     STATUS,Z
        bcf     STATUS,C
        btfsc   Reg057,7
        bsf     STATUS,C
        goto    L028F
;-----------------------------
L025C   movf    Reg057,w
        movwf   Reg05E
        movf    Reg05A,w
        movwf   Reg05F
        movf    Reg056,w
        subwf   Reg05F,f
        btfsc   STATUS,Z
        goto    L026A
        btfss   Reg05E,7
        goto    L028F
        movf    STATUS,w
        xorlw   001h              ;1   0000 0001
        movwf   STATUS           ; Bank0
        goto    L028F
;-----------------------------
L026A   movf    Reg05B,w
        movwf   Reg05F
        movf    Reg057,w
        subwf   Reg05F,f
        btfsc   STATUS,Z
        goto    L0276
        btfss   Reg05E,7
        goto    L028F
        movf    STATUS,w
        xorlw   001h             ;1  0000 0001

        movwf   STATUS           ; Bank0
        goto    L028F
;-----------------------------
L0276   movf    Reg05C,w
        movwf   Reg05F
        movf    Reg058,w
        subwf   Reg05F,f
        btfsc   STATUS,Z
        goto    L0282
        btfss   Reg05E,7
        goto    L028F
        movf    STATUS,w
        xorlw   001h             ;1  0000 0001

        movwf   STATUS           ; Bank0
        goto    L028F
;-----------------------------
L0282   movf    Reg05D,w
        movwf   Reg05F
        movf    Reg059,w
        subwf   Reg05F,f
        btfsc   STATUS,Z
        goto    L028E
        btfss   Reg05E,7
        goto    L028F
        movf    STATUS,w
        xorlw   001h              ;1   0000 0001
 
        movwf   STATUS           ; Bank0
        goto    L028F
;-----------------------------
L028E   bcf     STATUS,C
L028F   return
;-----------------------------
L0290   clrf    Reg057
L0291   movf    Reg056,w
        subwf   Reg057,w
        btfsc   STATUS,C
        goto    L029A
        movlw   00Ah             ;10    0000 1010
        movwf   Reg058
        call    L0065
        incf    Reg057,f
        goto    L0291
;-----------------------------
L029A   goto    L02E1
;-----------------------------
L029B   clrf    FSR
        movlw   01Fh             ;31   0001 1111
        andwf   STATUS,f         ; Bank0
        clrf    Reg04D
        clrf    Reg04F
        clrf    Reg04E
        clrf    Reg050
        bsf     Reg055,0
        bcf     ADCON0,VCFG
        bsf     STATUS,RP0       ; Bank1
        bcf     ANSEL,0
        bcf     ANSEL,1
        bcf     ANSEL,2
        bcf     ANSEL,3
        bcf     STATUS,RP0       ; Bank0
        clrf    CMCON0
        clrf    CMCON1
        goto    L0078
;-----------------------------
L02AD   movf    Reg04D,w
        btfsc   STATUS,Z
        goto    L02B7
        xorlw   001h              ;1   0000 0001
        btfsc   STATUS,Z
        goto    L031F
        xorlw   003h              ;3  0000 0011
        btfsc   STATUS,Z
        goto    L0382
        goto    L039A
;-----------------------------
L02B7   call    L00B8
        movf    Reg054,w
        movwf   Reg059
        movf    Reg053,w
        movwf   Reg058
        movf    Reg052,w
        movwf   Reg057
        movf    Reg051,w
        movwf   Reg056
        movlw   0A4h               ;164    ‭10100100‬
        movwf   Reg05D
        movlw   070h                ;112   0111 0000
        movwf   Reg05C
        movlw   07Dh                ;125    0111 1101
        movwf   Reg05B
        movlw   07Fh                ;127    0111 1111
        movwf   Reg05A
        call    L0251
        btfsc   STATUS,C
        goto    L02DE
        movlw   085h               ;133   1000 0101
        movwf   Reg059
        movlw   0EBh               ;235   1110 1011
        movwf   Reg058
        movlw   021h                ;33   0010 0001
        movwf   Reg057
        movlw   080h                ;128  1000 0000
        movwf   Reg056
        movf    Reg054,w
        movwf   Reg05D
        movf    Reg053,w
        movwf   Reg05C
        movf    Reg052,w
        movwf   Reg05B
        movf    Reg051,w
        movwf   Reg05A
        call    L0251
        btfss   STATUS,C
        goto    L031C
L02DE   movlw   064h               ;100   0110 0100
        movwf   Reg056
        goto    L0290
;-----------------------------
L02E1   call    L00B8
        movf    Reg054,w
        movwf   Reg059
        movf    Reg053,w
        movwf   Reg058
        movf    Reg052,w
        movwf   Reg057
        movf    Reg051,w
        movwf   Reg056
        movlw   0A4h                 ;164  1010 0100
        movwf   Reg05D
        movlw   070h                 ;112  0111 0000   
        movwf   Reg05C
        movlw   07Dh                 ;125  0111 1101
        movwf   Reg05B
        movlw   07Fh                 ;127  0111 1111
        movwf   Reg05A
        call    L0251
        btfsc   STATUS,C
        goto    L0308
        movlw   085h                 ;133  1000 0101
        movwf   Reg059
        movlw   0EBh                  ;235  1110 1011
        movwf   Reg058
        movlw   021h                  ;33 0010 0001
        movwf   Reg057
        movlw   080h                  ;128 1000 0000
        movwf   Reg056
        movf    Reg054,w
        movwf   Reg05D
        movf    Reg053,w
        movwf   Reg05C
        movf    Reg052,w
        movwf   Reg05B
        movf    Reg051,w
        movwf   Reg05A
        call    L0251
        btfss   STATUS,C
        goto    L0319
L0308   bcf     GPIO,5                ;desactiva pin 5
        bcf     GPIO,4                ;desactiva pin 4
        bsf     GPIO,0                ;activa pin 0
        bsf     Reg055,0
        bcf     Reg055,1
        bsf     STATUS,RP0       ; Bank1
        bcf     PIE1,TMR1IE
        bcf     STATUS,RP0       ; Bank0
        bcf     INTCON,PEIE
L0311   bcf     INTCON,GIE
        btfsc   INTCON,GIE
        goto    L0311
        bsf     Reg055,2
        clrf    Reg04F
        clrf    Reg04E
        clrf    Reg04D
        goto    L031B
;-----------------------------
L0319   movlw   001h                    ;1 0000 0001
        movwf   Reg04D
L031B   goto    L031E
;-----------------------------
L031C   movlw   001h                    ;1 0000 0001
        movwf   Reg04D
L031E   goto    L039A
;-----------------------------
L031F   movf    Reg054,w
        movwf   Reg059
        movf    Reg053,w
        movwf   Reg058
        movf    Reg052,w
        movwf   Reg057
        movf    Reg051,w
        movwf   Reg056
        movlw   0B8h                    ;184 1011 1000
        movwf   Reg05D
        movlw   01Eh                    ;30 0001 1110
        movwf   Reg05C
        movlw   005h                    ;5  0000 0101
        movwf   Reg05B
        movlw   080h                    ;128  1000 0000
        movwf   Reg05A
        call    L0251
        btfss   STATUS,C
        goto    L0345
        movlw   0A4h                    ;164  1010 0100
        movwf   Reg059
        movlw   070h                    ;112  0111 0000
        movwf   Reg058
        movlw   07Dh                    ;125  0111 1101
        movwf   Reg057
        movlw   07Fh                    ;127  0111 1111
        movwf   Reg056
        movf    Reg054,w
        movwf   Reg05D
        movf    Reg053,w
        movwf   Reg05C
        movf    Reg052,w
        movwf   Reg05B
        movf    Reg051,w
        movwf   Reg05A
        call    L0251
        btfsc   STATUS,C
        goto    L036B
L0345   movf    Reg054,w
        movwf   Reg059
        movf    Reg053,w
        movwf   Reg058
        movf    Reg052,w
        movwf   Reg057
        movf    Reg051,w
        movwf   Reg056
        movlw   085h                    ;133  1000 0101
        movwf   Reg05D
        movlw   0EBh                    ;235 1110 1011
        movwf   Reg05C
        movlw   021h                    ;33 0010 0001
        movwf   Reg05B
        movlw   080h                    ;128 1000 0000
        movwf   Reg05A
        call    L0251
        btfss   STATUS,C
        goto    L037E
        movlw   0A4h                     ;164 1010 0100
        movwf   Reg059
        movlw   070h                     ;112  0111 0000
        movwf   Reg058
        movlw   01Dh                     ;29  0001 1101
        movwf   Reg057
        movlw   080h                    ;128   1000 0000
        movwf   Reg056
        movf    Reg054,w
        movwf   Reg05D
        movf    Reg053,w
        movwf   Reg05C
        movf    Reg052,w
        movwf   Reg05B
        movf    Reg051,w
        movwf   Reg05A
        call    L0251
        btfss   STATUS,C
        goto    L037E
L036B   btfss   Reg055,2
        goto    L037E
        bcf     GPIO,5                ;desactiva 5
        bcf     GPIO,4                ;descativa 4
        bsf     GPIO,0                ;activa 7
        bsf     Reg055,0
        bcf     Reg055,1
        bsf     STATUS,RP0       ; Bank1
        bcf     PIE1,TMR1IE
        bcf     STATUS,RP0       ; Bank0
        bcf     INTCON,PEIE
L0376   bcf     INTCON,GIE
        btfsc   INTCON,GIE
        goto    L0376
        bsf     Reg055,2
        clrf    Reg04F
        clrf    Reg04E
        clrf    Reg04D
        goto    L0381
;-----------------------------
L037E   bcf     Reg055,2
        movlw   002h                        ;2   0000 0010
        movwf   Reg04D
L0381   goto    L039A
;-----------------------------
L0382   btfsc   Reg055,1
        goto    L0399
        btfss   Reg055,0
        goto    L0394
        bcf     GPIO,5                    ;desactiva 5
        bsf     GPIO,4                    ;activa 4
        bsf     GPIO,0                    ;activa 0
        bsf     STATUS,RP0       ; Bank1
        bsf     PIE1,TMR1IE      ;habilita interrupcion
        movlw   0C0h             ;192
        bcf     STATUS,RP0       ; Bank0
        iorwf   INTCON,f
        clrf    TMR1H
        movlw   001h             ;1   0000 0001
        movwf   TMR1L
        clrf    Reg04D
        bcf     Reg055,2
        goto    L0399
;-----------------------------
L0394   bsf     GPIO,4              ;activa 4
        bcf     GPIO,0              ;desactiva 0
        bsf     GPIO,5              ;activa 5
        clrf    Reg04D
        bcf     Reg055,2
L0399   goto    L039A
L039A   goto    L02AD
;-----------------------------
        sleep                    ; dead code?
 
        END

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Problema con codigo de protector de voltage, se activa en un rango muy estrecho
« Respuesta #1 en: 22 de Noviembre de 2021, 13:36:09 »
Creo que deberías poner un poco de contexto para conocer de que se trata.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Eduardo2

  • PIC24H
  • ******
  • Mensajes: 1004
Re:Problema con codigo de protector de voltage, se activa en un rango muy estrecho
« Respuesta #2 en: 22 de Noviembre de 2021, 13:44:21 »
La típica costumbre de "Acá está el código. Analicen y pregunten." 

Solo superada por:  "Acá está un fragmento del código. Analicen y pregunten."

-----------------------------------

Ademas,  ese código está desensamblado del pic o de un listado hex.  Al perderse los nombres de las variables y las etiquetas se complica enormente la interpretación.

Tampoco te tomaste el trabajo de relevar el hardware, que no solo ayuda a entender sino que es el candidato a responsable del problema.
« Última modificación: 22 de Noviembre de 2021, 19:09:12 por Eduardo2 »


 

anything