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 ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

test temp appui bp
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#11 Message par JMarc » dim. 18 déc. 2016 11:24

Bonjour Maï

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
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#12 Message par Guest » dim. 18 déc. 2016 12:26

J'ai oublié de te dire Bonjour impardonnable le maî :sifflotte:

Bon c'est bien :bravo: 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
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#13 Message par JMarc » lun. 19 déc. 2016 20:50

Bonsoir

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 :sifflotte:

test temp appui bp
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#14 Message par Guest » mar. 20 déc. 2016 08:04

bonjour JMarc

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


le reste c'est plus compliqué pour moi mais je regarde
:bravo: je vais donc attendre encore avant de poster le final.

A+

test temp appui bp
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#15 Message par Guest » mar. 20 déc. 2016 08:08

allez pour avancer tient ici la gestion du module BP

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
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#16 Message par Guest » mar. 20 déc. 2016 11:10

je vais rajouter cela

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 :sifflotte:

test temp appui bp
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#17 Message par JMarc » mar. 20 déc. 2016 20:02

Bonsoir MaÏ

Merci pour tous ces conseils. Merci !

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 :bravo:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 35 invités