Bonjours à tous,
Je suis en train d’apprendre par mes propres moyens l’utilisation du PIC 16f88. Donc par pitié soyez indulgeants.
J’ai fait un programme en assembleur qui allume 2 LED, puis 2 autres et enfin encore 2 autres.
Le programme compile sans erreur.=> OK
Quand je simule le programme, le port B à la bonne valeur (vérification sur watch de MPlab Sim) => OK
Entre 2 allumages de LED, j’aimerai bien mettre une tempo pour visualiser les LED.
Je me suis inspiré de la tempo de Bigonoff, mais j’ai un soucis :
1) je n’arrive pas à quitter la tempo
2) quand je visualise les valeurs des variables de la tempo elles ne sont jammais à 1111 11111 mais à 11000000
Je n'arrive pas à cerné le problème : j'ai essayé de definir les variables avec un define, y a le même problème, mettre des org dans les sous-programme pour être sur de ne pas écrire dessus, rien a faire!
Merci de votre aide
Voici le programme de la tempo :
Declaration :
CBLOCK 0x00C ; début de la zone variables
cmpt1 : 1 ; Zone de 1 byte pour compteur
cmpt2 : 1 ; Zone de 1 byte pour compteur
cmpt3 : 1 ; Zone de 1 byte pour compteur
ENDC
Sous programme :
tempo
movlw 0x2 ; pour 2 boucles
movwf cmpt3 ; initialiser compteur3
boucle3
movlw 0xFF ; pour 2 boucles
movwf cmpt2 ; initialiser compteur3
boucle2
movlw 0xFF ; pour 2 boucles
movwf cmpt1 ; initialiser compteur3;
boucle1
nop ; perdre 1 cycle
decfsz cmpt1,f ; décrémenter compteur1
goto boucle1 ; si pas 0, boucler
decfsz cmpt2,f ; si 0, décrémenter
goto boucle2 ; si cmpt2 pas 0,
decfsz cmpt3,f ; si 0, décrémenter
goto boucle3 ; si cmpt3 pas 0,
return ; retour de la sous-routine
Appel sous-programme:
....
call tempo
....
-----