Hola !
Soc nou en programacio de pics, i tinc un problema en arrancar la pic. Em simula tot be amb l"mplab i un altre programa de simulacio, pero en canvi, la pic fa el tontu, a vegades fa el k el codi diu, pero de vegades no. Un exemple, és que quan apreto el reset extern, fins dp de certs intents no comença el codi. us poso el codi per veure si pot ser algu daixo:
list p=16f870 ; EN ESTE CASO PIC 16F628. Adaptar si es necesario.
#include p16f870.inc
CBLOCK H"020"
;TICS1
ENDC
STATUS EQU 0x03
TRISA EQU 0x85
PORTA EQU 0x05
TRISB EQU 0x86
PORTB EQU 0x06
INTCON EQU 0x0B
ADCON0 EQU 0x1F
ADCON1 EQU 0x9F
OPTION_REG EQU 0x81
VAR EQU 0x7F
#DEFINE BANC0 BCF STATUS,5
#DEFINE BANC1 BSF STATUS,5
org 0x00
GOTO INICI
Org 0x04
goto INICI
; Goto RSI_INTERRUPCION
INICI
CLRF STATUS
BCF STATUS,RP0 ;banco 0
BCF STATUS,RP1 ;banco 0
CALL INIT_PORTA
;CALL INIT_PORTB
;CALL INIT_VARIABLES
;Call CONF_INTERRUPCIONES
;CALL INIT_COMPARATOR
;BSF INTCON,GIE ;Activamos interrupciones
Main:
;BSF PORTA,1
BSF PORTA,2
BTFSC PORTA,0
CALL ENCEN_LED
goto Main
ENCEN_LED
BSF PORTA,1
return
INIT_PORTA
BCF STATUS, RP0 ;
BCF STATUS, RP1 ;Bank0
CLRF PORTA
BSF STATUS, RP0
MOVLW 0x06
MOVWF ADCON1
MOVLW 0x01 ;Value used to 11001111
MOVWF TRISA
MOVLW 0x03
MOVWF PCON
bcf STATUS,RP0
return
INIT_PORTB
CLRF PORTB
BANC1
MOVLW 0x80
MOVWF OPTION_REG
MOVLW 0x00
MOVWF TRISB
BANC0
return
INIT_VARIABLES
MOVLW 0x00
MOVWF VAR
return
END
Merci