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
compteur décompteur sur 7 segments
Si tu le veux bien. Je reprend avec toi ,les tempos que j'ai ici( modifié depuis la dernière fois)
J'ai :
/TIMER1
-en programmation temps 200ms pour clignotement digit (avant j'avais 400ms ) et 400ms pour basculer en décomptage
-en décomptage 100ms
/TIMER0
déclenche une int toute les 1ms cela pour effet:
mise en route affichage des 7 segments et donne donc, après affichage (allez un tuyau, c'est la que l'on remet l'int timer0 en service que l'on efface le flag et que l'on recharge le timer0 pour 1ms) les 1ms pour le traitement des BP et du décomptage son largement suffisante.
/Tempo en boucle
-de 1ms c'est le temps pour le multiplexage de afficheur ( j'ai raccourci avant 2 ms)
-de 800µs anti rebond des BP
Donc si tu veux utiliser le TIMER0 pour autre chose, amha pour cette application c'est une mauvaise idée mais bon....
A+
PS toutes ces modifications, sont uniquement pour mon goût perso .pour la tempo boucle de 1ms, on peut descendre encore ,mais attention au type d'afficheurs, après on risques de voir des étoiles
J'ai :
/TIMER1
-en programmation temps 200ms pour clignotement digit (avant j'avais 400ms ) et 400ms pour basculer en décomptage
-en décomptage 100ms
/TIMER0
déclenche une int toute les 1ms cela pour effet:
mise en route affichage des 7 segments et donne donc, après affichage (allez un tuyau, c'est la que l'on remet l'int timer0 en service que l'on efface le flag et que l'on recharge le timer0 pour 1ms) les 1ms pour le traitement des BP et du décomptage son largement suffisante.
/Tempo en boucle
-de 1ms c'est le temps pour le multiplexage de afficheur ( j'ai raccourci avant 2 ms)
-de 800µs anti rebond des BP
Donc si tu veux utiliser le TIMER0 pour autre chose, amha pour cette application c'est une mauvaise idée mais bon....
A+
PS toutes ces modifications, sont uniquement pour mon goût perso .pour la tempo boucle de 1ms, on peut descendre encore ,mais attention au type d'afficheurs, après on risques de voir des étoiles
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
Bonjour Maï
J'essaie de faire l'organigramme mais cela va demander du temps
Et il y a toujours le problème du call dans l'interruption, je le laisse ou bien je l'enlève ?
JMarc a écrit :
mon idée etait l'appuis sur valid (il fallait trouvé un nom, j'ai mis valid) pour sortir du chrono et entrée dans la parti correction des unités avec l'allumage que des unités, alors si appuie du bouton plus = incrementation des unités de 0 a 9 et repassage a 0. si appuie sur valid = passage sur les dizaines puis les centaines puis les milliers puis retour au chrono.
si chrono affiché, si appuie sur plus alors demarage du chrono, nouvel appuis arret
J'essaie de faire l'organigramme mais cela va demander du temps
Et il y a toujours le problème du call dans l'interruption, je le laisse ou bien je l'enlève ?
compteur décompteur sur 7 segments
mais la du temps tu en as de moins en moins dans 15 jours je postJMarc a écrit :J'essaie de faire l'organigramme mais cela va demander du temps
fait comme tu le sens.Perso j'ai une macro donc, sans appel a la pile.(call et return).Et il y a toujours le problème du call dans l'interruption, je le laisse ou bien je l'enlève ?
Si tu as 5 minutes, regarde sur le net programmation modulaire. c'est ce que nous avons fait pour affichage 7 segments et que je comptais faire avec le module de décomptage, mais je crois que c'est un peu trop tot .plus tard, on en reparle
A+
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
Dans mon projet j'ai cela
delay_ms.1 et une macro avec comme paramètre 1 ->1ms et comme tu n'as pas les macros soit tu laisses ton call soit tu transformes ton call en macro mais AMHA laisse comme cela
Donc le seul call que j'ai c'est pour la recherche des segments suivant donnée ,quoi on peut aussi mettre cela en flash et recuperer, la donnée. Mais c'est une autre page
A+
Code : Tout sélectionner
Digit1 MOVFW ComptSu ;charge la donnée
CALL LedTable ;recherche donnée
MOVWF PORTC ;envoi donnée
delay_ms .1 ;petite tempo 1ms
BCF PORTA,0x0 ;arrêt digit0
delay_ms.1 et une macro avec comme paramètre 1 ->1ms et comme tu n'as pas les macros soit tu laisses ton call soit tu transformes ton call en macro mais AMHA laisse comme cela
Donc le seul call que j'ai c'est pour la recherche des segments suivant donnée ,quoi on peut aussi mettre cela en flash et recuperer, la donnée. Mais c'est une autre page
A+
compteur décompteur sur 7 segments
tient ici la modification pour ne pas avoir de call de tempo
mais amha c'est des details a voir plus tard
A+
Code : Tout sélectionner
Tem2ms MACRO
LOCAL T1
MOVLW 0x3
MOVWF MEM1
MOVLW 0x98
MOVWF MEM
T1 DECFSZ MEM, F ; source issue de la macro delay_ms .2
GOTO T1
DECFSZ MEM1, F
GOTO T1
ENDM
;*********************** Affichage sur 4 digits ********************************
;
;********************* avec gestion du digit selectionné ***********************
Aff7S MACRO
BSF PORTA,0x0 ;allumage digit0
Digit1 MOVFW ComptSu ;charge la donnée
CALL LedTable ;recherche donnée
MOVWF PORTC ;envoi donnée
Tem2ms ;petite tempo 2ms
BCF PORTA,0x0 ;arrêt digit0
mais amha c'est des details a voir plus tard
A+
compteur décompteur sur 7 segments
compteur décompteur sur 7 segments
OUI et NON c'est des modules , de sous programme ou des macros voir des fichiers objetsJMarc a écrit :La programmation modulaire serai comme pleins de macro ?
Tu connais macro et spg .J'ai fait un fil, sur le fichier hex et comment on obtient sa réalisation .Voir ici pour objet viewtopic.php?f=11&t=358
j'ai perso, des bibliothèques de tout cela, des modules que tu prends et incorpore dans un projet comme font les langages évolues C, C++ etc.... avec leurs librairies.Ils n'ont pas inventés, le fil à couper le beurre Tient un module en C ou en ASM par exemple c'est la gestion d'un LCD, donc les fils sont sur Fantas Pic. En C une librairie, en ASM un fichier objet.Un module et un bout de code, une fois fait, tu ne le retouches PLUS tu peux lui passer des paramètres
Bon le but, même si c'est intéressant .C'est de finir, ce minuteur, pour la cuisine
la gestion de tes boutons on en es OU?
A+
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 142 invités