Bonjour,
j’ai un petit programme qui tourne sur un PIC 16F628A et j’ai trouvé une maquette pour m’aider a programmer, mai j’aimerais réduire le temps d’initialisation de mon PIC, j’aimerais perdre beaucoup moins de temps notamment au moment de l’effacement de la RAM de façon a ce que mon programme démarre beaucoup plus vite.
Es vraiment obligatoire d’effacer la RAM ? Comment faire pour réduire ce temps d’initialisation ?
Merci d’avance
PS : Voici le code pour l’initialisation que j’utilise actuellement :
;***************************** ****************************** ******************
; INITIALISATIONS *
;***************************** ****************************** ******************
init
; initialisation PORTS (banque 0 et 1)
; ------------------------------------
BANK0 ; sélectionner banque0
clrf PORTA ; Sorties PORTA à 0
clrf PORTB ; sorties PORTB à 0
BANK1 ; passer en banque1
movlw DIRPORTA ; Direction PORTA
movwf TRISA ; écriture dans registre direction
movlw DIRPORTB ; Direction PORTB
movwf TRISB ; écriture dans registre direction
; Registre d'options (banque 1)
; -----------------------------
movlw OPTIONVAL ; charger masque
movwf OPTION_REG ; initialiser registre option
; registres interruptions (banque 1)
; ----------------------------------
movlw INTCONVAL ; charger valeur registre interruption
movwf INTCON ; initialiser interruptions
movlw PIE1VAL ; Initialiser registre
movwf PIE1 ; interruptions périphériques 1
movlw VRCONVAL ; charger valeur registre interruption
movwf VRCON ; initialiser interruptions
BANK0 ; sélectionner banque 0
movlw CMCONVAL ; charger valeur registre interruption
movwf CMCON ; initialiser interruptions
; Effacer RAM banque 0
; ---------------------
BANK0 ; sélectionner banque 0
movlw 0x20 ; initialisation pointeur
movwf FSR ; d'adressage indirect
init1
clrf INDF ; effacer ram
incf FSR,f ; pointer sur suivant
btfss FSR,7 ; tester si fin zone atteinte (>7F)
goto init1 ; non, boucler
; autoriser interruptions (banque 0)
; ----------------------------------
clrf PIR1 ; effacer flags 1
bsf INTCON,GIE ; valider interruptions
; initialisations variables
; -------------------------
REEPROM eereload ; lire emplacement eeprom 0x00
movwf variaperso ; placer dans variaperso
goto start ; sauter programme principal
-----