Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
test temp appui bp
Bonjour Maï
J'ai changé l'endroit de la raz et mis la tempo avec.
pour l'instant je teste que sous debug car tu m'as changé les commandes des bp, ils sont a 1 relâché et a 0 appuyé, l'inverse de ma platine. j'aurai pus changé le programme mais j'ai deduis que t'as platine est ainsi donc parallèlement je modifié le hard de mon coté comme cela nous seront pareil. tes afficheurs sont anode communes ?
J'ai changé l'endroit de la raz et mis la tempo avec.
Code : Tout sélectionner
;*******************************************************************************
Tbpval
clrf Temp_Val ; raz pour test appuis long
CALL Temp800µs ;petite tempo antirebond
Tbpvalboucle
BTFSC BP_Val ;BP_val relaché ? RB1
GOTO Tbpvalsuite ;OUI alors suite
btfss Temp_Val,2 ; test si 4 x timer1
goto Tbpvalboucle ; non alors j'attend
goto appuislong ; oui traitement de l'appuis long
Tbpvalrelache
btfsc BP_Val
goto Tbpvalrelache
bsf Index,7
goto Decom
Tbpvalsuite
BCF STATUS,C
rlf Index,f ; rotation par la gauche
btfsc Index,4 ; test si > que ComptMd
goto Init_Va ; oui alors traitement
incf FSR,f ; non alors variable suivante
bsf Index,7 ; garder la main en reglage
goto BouP
appuislong
btfss BP_Val ; bp relaché ?
goto appuislong ; non alors attente
; mon prog si appuis long 400 ms sur bpval
goto BouP
pour l'instant je teste que sous debug car tu m'as changé les commandes des bp, ils sont a 1 relâché et a 0 appuyé, l'inverse de ma platine. j'aurai pus changé le programme mais j'ai deduis que t'as platine est ainsi donc parallèlement je modifié le hard de mon coté comme cela nous seront pareil. tes afficheurs sont anode communes ?
test temp appui bp
J'ai oublié de te dire Bonjour impardonnable le maî
Bon c'est bien reste a mieux ranger tout cela pour gagner quelles lignes. Il faut aussi que tu règles le problème de la validation appui LONG :
Si en programmation on déclenche le décomptage sinon on arrête le décomptage et raz des variables et re int du pointeur digit.
De plus il y a encore quelques détails par exemple:
Dans BouP : SI pas, BPval et pas BPplus, mais décomptage alors décomptage sinon BouP
Dans BPplus si decompage sur BouP sinon incf pointeur FIN du MODULE BP
a+
Bon c'est bien reste a mieux ranger tout cela pour gagner quelles lignes. Il faut aussi que tu règles le problème de la validation appui LONG :
Si en programmation on déclenche le décomptage sinon on arrête le décomptage et raz des variables et re int du pointeur digit.
De plus il y a encore quelques détails par exemple:
Dans BouP : SI pas, BPval et pas BPplus, mais décomptage alors décomptage sinon BouP
Dans BPplus si decompage sur BouP sinon incf pointeur FIN du MODULE BP
a+
test temp appui bp
Bonsoir
Voila ce que je trouve logique pour moi pour la partie BouP
le reste c'est plus compliqué pour moi mais je regarde
maï a écrit :De plus il y a encore quelques détails par exemple:
Dans BouP : SI pas, BPval et pas BPplus, mais décomptage alors décomptage sinon BouP
a+
Voila ce que je trouve logique pour moi pour la partie BouP
Code : Tout sélectionner
;********************** Boucle principale **************************************
BouP
BTFSS BP_Val ;BP val appuiyé ? RB1
goto Tbpval ; voir bouton val
BTFSS BP_Plus ;BP_Plus appuyé? RB0
GOTO Plus ;NON voir le BP plus
BTFSS Index,7 ;mode decomptage ?
GOTO Decom ;oui
GOTO BouP ;NON on reboucle sur Principale
le reste c'est plus compliqué pour moi mais je regarde
test temp appui bp
bonjour JMarc
il faut faire le test Avant
A+
il faut faire le test Avant
Code : Tout sélectionner
;*********************** Bouton plus *******************************************
Plus BTFSS Index,7 ;mode decomptage ?
GOTO Decom ;oui
BTFSC BP_Plus ;BP_Plus appuyé?
GOTO BouP ;NON on reboucle sur Principale
CALL Temp800µs ;petite tempo antirebond
Plus0 BTFSS BP_Plus ;BP_Plus relaché
GOTO Plus0 ;NON on boucle
INCF INDF,F ;adresse pointé +1
MOVLW 0X0A ;test butée 9
BTFSS Index,0
BTFSC Index,2 ;on test les digits max 9 ou 5
GOTO Plus1
MOVLW 0X6 ;test butée 5
Plus1 SUBWF INDF,W
BTFSC STATUS,C
CLRF INDF ;si butée raz adresse pointé
GOTO BouP ;on Reboucle sur boucle principale
je vais donc attendre encore avant de poster le final.le reste c'est plus compliqué pour moi mais je regarde
A+
test temp appui bp
allez pour avancer tient ici la gestion du module BP
il te reste petit problème sur le décomptage et la macro afficheur sélection digit
Code : Tout sélectionner
;********************** fixation des variables *********************************
Raz_Var CLRF ComptSu ;
CLRF ComptSd ;
CLRF ComptMu ;raz des variables Temps
CLRF ComptMd ;
Init_Va MOVLW ComptSu ;intialise ou re les variables
MOVWF FSR ;charge le pointeur de adresse unite S
MOVLW B'10000001' ;B0:B3 index sur 1er digit
MOVWF Index ;B7: mode programmation
;********************** Boucle principale **************************************
BouP BTFSC BP_Val ;BP val appuiyé ?
GOTO Plus ;NON voir le BP plus
CLRF Temp_Val
CALL Temp800µs ;OUI petite tempo anti rebond
Val1 BTFSC BP_Val ;malgres la tempo
GOTO Val0 ;le BP a etait relaché donc on sort
BTFSS Temp_Val,2 ;appuie long?
GOTO Val1 ;on reboucle
BTFSS Index,7 ;fin tempo mode programmation?
GOTO Raz_Var ;oui arret decomptage on boucle sur RAZ
BCF Index,7 ;NON on passe en decomptage
GOTO Start_D ;on lancement decomptage
;**********************
Val0 BTFSS Index,7 ;mode Decomptage?
GOTO Decom ;oui
BCF STATUS,C
RLF Index,F ;decalage index digit vers la GAUCHE
BTFSC Index,4 ;Index hors butée?
GOTO Init_Va ;oui on reinitialise les variables
BSF Index,7 ;repositionne le bit programmation
INCF FSR,F ;NON pointeur variable +1
GOTO BouP ;boucle principale
;*********************** Bouton plus *******************************************
Plus BTFSS Index,7 ;mode decomptage ?
GOTO Decom ;oui
BTFSC BP_Plus ;BP_Plus appuyé?
GOTO BouP ;NON on reboucle sur Principale
CALL Temp800µs ;petite tempo antirebond
Plus0 BTFSS BP_Plus ;BP_Plus relaché
GOTO Plus0 ;NON on boucle
INCF INDF,F ;adresse pointé +1
MOVLW 0X0A ;test butée 9
BTFSS Index,0
BTFSC Index,2 ;on test les digits max 9 ou 5
GOTO Plus1
MOVLW 0X6 ;test butée 5
Plus1 SUBWF INDF,W
BTFSC STATUS,C
CLRF INDF ;si butée raz adresse pointé
GOTO BouP ;on Reboucle sur boucle principale
il te reste petit problème sur le décomptage et la macro afficheur sélection digit
test temp appui bp
je vais rajouter cela
c'est le bout de code qui relit module BP et decomptage car on a pas rendu le module Décomptage indépendant c'est un sous module de BP, une autre fois
Code : Tout sélectionner
;*******************************************************************************
Start_D BTFSS BP_Val
GOTO Start_D ;attend que BP_Val soit relaché
CLRF Temp ;RAZ du compteur temps, decomptage parti
;*********************** Lance decomptage **************************************
Decom MOVFW ComptSu ;on effectue un OU logique
c'est le bout de code qui relit module BP et decomptage car on a pas rendu le module Décomptage indépendant c'est un sous module de BP, une autre fois
test temp appui bp
Bonsoir MaÏ
Merci pour tous ces conseils.
J'ai du mal avec la variable index, j'ai bien compris sont fonctionnement mais je me perds dans la lecture du programme. je vais le faire tourner sous debug pour me familiariser avec cette logique.
C'est bien d’être obliger de sortir de sa logique et de voir d'autre méthode
Merci pour tous ces conseils.
J'ai du mal avec la variable index, j'ai bien compris sont fonctionnement mais je me perds dans la lecture du programme. je vais le faire tourner sous debug pour me familiariser avec cette logique.
C'est bien d’être obliger de sortir de sa logique et de voir d'autre méthode
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Google [Bot] et 64 invités