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

compteur décompteur sur 7 segments
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#91 Message par JMarc » ven. 11 nov. 2016 13:59

Essai mon prog, les bp sont 0 volts non appuyé, 5volts appuyé,
Les afficheurs cathodes communes


maï a écrit :

Alors si c'est bon que veux-tu de plus. Mais la il faut que tu m'expliques par ce que moi je ne comprends pas cela
Cela tourne en boucle jusqu'à l'appuie bpvalid, qui éteint la sirène et repart dans le de comptage.



A la fin du comptage, une fois affiché 0 sur tout les afficheurs, que la led qui simule une plaque de cuisson est éteinte et que la led qui simule une sirène est allumé, alors mon programme toune en boucle (attend l'appuie de bpvalid et ne fait rien d'autre). Une fois bp appuyé, la led sirène s'éteint. Mon programme est fini mais pour les essais, goto debut

Por le second timer, c'est en étude. C'est comment me servir de son interruption qui me bloque

compteur décompteur sur 7 segments
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#92 Message par Guest » ven. 11 nov. 2016 14:05

tu veux que je fasse un essai avec le décomptage c'est ca ?

compteur décompteur sur 7 segments
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#93 Message par JMarc » ven. 11 nov. 2016 14:08

maï a écrit :tu veux que je fasse un essai avec le décomptage c'est ca ?


Oui, je veux bien sans te servir de bpmoins (rb1)

Merci

compteur décompteur sur 7 segments
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#94 Message par Guest » ven. 11 nov. 2016 14:11

je fais faire tourner le décomptage dans une boucle avec point d'arret et de donner le résultat sur les variables
allez c'est parti

compteur décompteur sur 7 segments
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#95 Message par Guest » ven. 11 nov. 2016 14:45

c'est OK :bravo:
Mais a la fin lorsque c'est a zéro, tu repasses par les 4 décomptages en faisant 9,5,9,FF et les remettre a zer0 alors quelle son déjà a zéro a cause du test sur soustraction c'est un carry moi c'est un zero.

TEST lorsque c'est ZERO

cela te coûte 16 cycles de plus
mais chez moi 6 mem programme en plus
donc chez toi moins rapide(+31 cycles) mais plus court (32mem):bravo: :bravo:
et chez moi plus rapide(+15 cycles) mais plus long (38 mem )

allez la suite

compteur décompteur sur 7 segments
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#96 Message par Guest » ven. 11 nov. 2016 15:22

Comme j’étais un peu dans les choux, cela ma stimulé :bravo: a toi. Voici plus court et plus rapide comme quoi un bout de code toujours a travailler :wink:

Test si zero en 5 cycles et pour la mem programme 28 octets :langue: pour le décomptage contre 38 précédemment

Code : Tout sélectionner

;*********************** Lance decomptage **************************************    
Decom    MOVLW   0X0A            
;on test si 10fois 100mS
    SUBWF   Temp
,W
    BTFSS   STATUS
,Z
    GOTO    BouP            
;NON
    CLRF    Temp            
;OUI RAZ compteur temps et on decompte

;***********************
    MOVFW    ComptSu
    IORWF    ComptSd
,W
    IORWF    ComptMu
,W
    IORWf    ComptMd
,W        ;test si zero
    BTFSC    STATUS
,Z
    GOTO    BouP0
    
;***********************    
Decom0    DECF   ComptSu
,F        ;uS-1
    
    MOVLW    0XFF            
; test si > 0
    SUBWF    ComptSu
,W         
    BTFSS   STATUS
,Z        
    GOTO    BouP            
; NON
    
    MOVLW    0X09
    MOVWF    ComptSu            
;uS= 9
    
;***********************    
    DECF    ComptSd
,F        ;dS +1
    
    MOVLW   0XFF
    SUBWF   ComptSd
,W        ;test si >0
    BTFSS   STATUS
,Z
    GOTO   BouP            
;NON            
    
    MOVLW    0X5
    MOVWF    ComptSd            
;dS =9

;***********************    
    DECF   ComptMu
,F
    
    MOVLW    0XFF
    SUBWF    ComptMu
,W
    BTFSS   STATUS
,Z        ;IDEM Mu
    GOTO    BouP
    
    MOVLW    0X09
    MOVWF    ComptMu
    
;***********************
    DECF   ComptMd                        
    GOTO    BouP


on empile des ou logiques a travers W et les variables le résultat, si tout a zero -> zero

A+

compteur décompteur sur 7 segments
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#97 Message par Guest » ven. 11 nov. 2016 15:45

Bon allez encore plus court et plus rapide :langue: pas mal optimisé la :sifflotte:

Code : Tout sélectionner

;*********************** Lance decomptage **************************************    
Decom    MOVLW   0X0A            
;on test si 10fois 100mS
    SUBWF   Temp
,W
    BTFSS   STATUS
,Z
    GOTO    BouP            
;NON
    CLRF    Temp            
;OUI RAZ compteur temps et on decompte
;***********************
    MOVFW    ComptSu
    IORWF    ComptSd
,W
    IORWF    ComptMu
,W
    IORWf    ComptMd
,W        ;test si zero
    BTFSC    STATUS
,Z
    GOTO    BouP0
;***********************    
    DECF   ComptSu
,F        ;uS-1
    
    BTFSS    ComptSu
,7
    GOTO    BouP    
    MOVLW    0X09
    MOVWF    ComptSu            
;uS= 9
;***********************    
    DECF    ComptSd
,F        ;dS +1
    
    BTFSS    ComptSd
,7
    GOTO    BouP
    MOVLW    0X5
    MOVWF    ComptSd            
;dS =9
;***********************    
    DECF   ComptMu
,F

    BTFSS    ComptMu
,7
    GOTO    BouP
    MOVLW    0X9
    MOVWF    ComptMu            
;dS =9
;***********************
    DECF   ComptMd                        
    GOTO    BouP


Sans les soustractions, juste un test sur bit 7 occupation générale du programme 226 octets contre 242
demain pas tres dispo j'en profite

Bon, STOP

compteur décompteur sur 7 segments
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#98 Message par JMarc » ven. 11 nov. 2016 16:51

Cette dernière me plait mais impossible de faire un copier coller, erreur de compil, plein de caractère illégal que je n'arrive pas à supprimer. Je vais retaper manuellement

Tu as déplacé l'étiquette BouP, du coup je ne sais pas où va le renvoi goto BouP

Je prend exemple et essai de comprendre.

compteur décompteur sur 7 segments
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#99 Message par Guest » ven. 11 nov. 2016 17:46

JMarc a écrit :Tu as déplacé l'étiquette BouP, du coup je ne sais pas où va le renvoi goto BouP

Je prend exemple et essai de comprendre.


il y en n'a pas 1 goto mais 4 de goto BouP et BouP0,BouP1,BouP2 si je te donne cela tu vas tres vite progresser et si je te donne sans explication cela ne sert a rien.

Bon je te donne:c'est les renvois, des modules clavier et décomptage qui aboutisse ici

Code : Tout sélectionner

;********************** fixation des variables *********************************
BouP2    CLRF    ComptSu
    CLRF    ComptSd
    CLRF    ComptMu            
;raz des variables Temps        
    CLRF    ComptMd
    
Boup0    MOVLW    ComptSu
    MOVWF    FSR            
;charge le pointeur de adresse unite S
    MOVLW    B
'10000001'        ;B0: index sur 1er digit
    MOVWF    Index            
;B7: mode programmation
    
BouP1    BTFSS    BP_Val
    GOTO    BouP1            
;attend que BP_Val soit bien relaché
    CLRF    Temp            
;RAZ du compteur temps  parti le décomptage
    
;********************** Boucle principale **************************************    
BouP    BTFSC    BP_Val            
;BP val appuiyé ?    
    GOTO    Plus            
;NON


-le BouP2 c'est lors d'un arrêt volontaire du décomptage RAZ variables comptages plus, je t'ai dit, dans l'un des fils qui serait bien utiliser un pointeur pour la gestion du déplacement, pour mettre fin au bas de ton code qui n'est pas tres beau, voir plus :sifflotte: + un variable Index qui me sert de structure pour gérer si programmation et quel digit est actif, Tout cela en faisant des test sur ses bits.
-le BouP0 c'est la fin du décomptage avec raz des variables, pas de comptages elles sont deja a Zero
-le BouP1 c'est lors de la validation du décomptage le Bouton relâché on lance le décompte.
-et le bouP c'est tout les retours du module gestion BP.

Je t'avais proposé, aussi un organigramme sur la gestion des BP , sans réponse, passé a la trap dommage

si tu as tout compris on est presque à la fin

A+

PS bien sur le plus intéressant c'est BouP0 et j"espère que tu vas me poser des questions :sifflotte:

compteur décompteur sur 7 segments
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#100 Message par JMarc » ven. 11 nov. 2016 18:09

maï a écrit :

Je t'avais proposé, aussi un organigramme sur la gestion des BP , sans réponse, passe a la trap dommage.

si tu as tout compris on est presque à la fin

A+



Pour l'organigramme, j'ai essayé mais je n'y arrive pas. C'est clair dans ma tête mais ça ne va pas sur le papier.
Comme le reste, j'ai énormément du mal à comprendre. Je lit, je relit, rien. A l'école c'était pareil, la théorie =0.

Si je prend le code, je vois se qu'il se passe et tout devient clair. Je fait des essais, modifie,adapte puis une fois que sa fonctionnera, je pourrais faire l'organigramme. Du coup pour un prochain projet similaire, l'organigramme sera fait avant, promis.

Je pense que nous sommes encore loin de la fin exit


Retourner vers « Langage ASM »

Qui est en ligne

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