je bute sur un petit problème dont la solution doit certainement être simple pour vous. Au moment de l'initialisation des compteurs cmpt1 charge bien la valeur 5 mais pas cmpt2 qui prend la valeur 1.
Pas moyen de trouver le pourquoi.
Code : Tout sélectionner
;**********************************************************************
; *
; NOM:
; Date:
; Auteur:
; *
;**********************************************************************
LIST p=16F876A ; Définition de processeur
#include <p16F876A.inc> ; fichier include
radix dec ; on travaille en décimal par défaut
__CONFIG _CP_OFF & _DEBUG_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_OFF & _WDT_OFF & _XT_OSC
OPTIONVAL EQU B'00000000'
ADCON1VAL EQU B'00000110' ; PORTA en mode digital
; --------------------------------------------------------------------------------------------
;*********************************************************************
CBLOCK 0x00C
cmpt1 ; compteur état haut
cmpt2 ; compteur état bas
cmpt3 ; compteur de temps note
cmpt4 ; compteur de temps note
Reg_1
Reg_2
Reg_3
ENDC
;**********************************************************************
org 0x000 ; Adresse de départ après reset
init
bsf STATUS,RP0 ; banque 1
movlw ADCON1VAL ; PORTA en mode digital/analogique
movwf ADCON1 ; écriture dans contrôle A/D
movlw OPTIONVAL ; charger masque
movwf OPTION_REG ; initialiser registre option
movlw b'00000111' ; A0, A1, A2 en entrée pour poussoirs
movwf TRISA
clrf TRISB ; Bit PORTB.0 en sortie
bcf STATUS,RP0 ; banque 0
clrf PORTB ; sorties portB à 0
movlw 5
movwf cmpt1 ; init compteurs
movwf cmpt2
;*********************************************************************
; PROGRAMME PRINCIPAL *
;*********************************************************************
main
END


