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
compteur décompteur sur 7 segments
Essai mon prog, les bp sont 0 volts non appuyé, 5volts appuyé,
Les afficheurs cathodes communes
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
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 celaCela 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
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
c'est OK
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:
et chez moi plus rapide(+15 cycles) mais plus long (38 mem )
allez la suite
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:
et chez moi plus rapide(+15 cycles) mais plus long (38 mem )
allez la suite
compteur décompteur sur 7 segments
Comme j’étais un peu dans les choux, cela ma stimulé a toi. Voici plus court et plus rapide comme quoi un bout de code toujours a travailler
Test si zero en 5 cycles et pour la mem programme 28 octets pour le décomptage contre 38 précédemment
on empile des ou logiques a travers W et les variables le résultat, si tout a zero -> zero
A+
Test si zero en 5 cycles et pour la mem programme 28 octets 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
Bon allez encore plus court et plus rapide pas mal optimisé la
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
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
compteur décompteur sur 7 segments
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 + 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
compteur décompteur sur 7 segments
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
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 93 invités