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
LCD origine inconnu
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
LCD origine inconnu
L'interruption ne changera rien, elle se produira à tout moment, et elle ne pourra pas plus revenir en début de programme que la version actuelle.
Soit STOP est un sous-programme et il ne peut finir en GOTO INIT, soit c'en est pas un et tu ne peux lui mettre un return derrière.
Les sous-programmes STOP, STOP2, CLIGNOTE retournent C = 1 si l'arrêt est demandé et confirmé.
Soit STOP est un sous-programme et il ne peut finir en GOTO INIT, soit c'en est pas un et tu ne peux lui mettre un return derrière.
Code : Tout sélectionner
STOP BCF STATUS,C
BTFSS PORTB,3
RETURN
CALL TEMPO2
BCF STATUS,C
BTFSS PORTB,3
RETURN
CALL ARRET
...
BSF STATUS,C
RETURN
STOP2 idem
Chaque fois que tu appelles STOP
CALL STOP
BTFSC STATUS,C
GOTO INIT
...
Appel de CLIGNOTE
CALL CLIGNOTE
BTFSC STATUS,C
GOTO INIT
...
CLIGNOTE
...
CALL STOP2
BTFSC STATUS,C
RETURN
...
BCF STATUS,C
RETURN
Les sous-programmes STOP, STOP2, CLIGNOTE retournent C = 1 si l'arrêt est demandé et confirmé.
LCD origine inconnu
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
LCD origine inconnu
La carry C est un flag du registre STATUS mis à jour par le pic en retour d'opération add, sub, ...
Mais on peut aussi le modifier soi-même et ainsi s'en servir de flag pour stocker une information.
les sous-programmes STOP et STOP2 mettent C à 1 si il y a appui prolongé OFF, sinon ils font C = 0
Dans toute la partie de programme jusqu'au sous-programme CLIGNOTE, on a le droit d'y faire GOTO INIT car aucun sous-programme n'est en cours d'exécution.
Dans le sous-programme CLIGNOTE, on a plus le droit au GOTO INIT, donc on remonte l'information C = 1 en sortant aussitôt par return. Il ne faut pas oublier de faire C = 0 juste avant la fin de CLIGNOTE, puisqu'il n'y a pas eu arrêt.
Pour MENU_B, cela serait bien d'enlever le test du bouton arrêt, sinon il faudra faire pareil que CLIGNOTE.
Mais on peut aussi le modifier soi-même et ainsi s'en servir de flag pour stocker une information.
les sous-programmes STOP et STOP2 mettent C à 1 si il y a appui prolongé OFF, sinon ils font C = 0
Dans toute la partie de programme jusqu'au sous-programme CLIGNOTE, on a le droit d'y faire GOTO INIT car aucun sous-programme n'est en cours d'exécution.
Dans le sous-programme CLIGNOTE, on a plus le droit au GOTO INIT, donc on remonte l'information C = 1 en sortant aussitôt par return. Il ne faut pas oublier de faire C = 0 juste avant la fin de CLIGNOTE, puisqu'il n'y a pas eu arrêt.
Pour MENU_B, cela serait bien d'enlever le test du bouton arrêt, sinon il faudra faire pareil que CLIGNOTE.
LCD origine inconnu
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Dans MENU_B la cde ne sert à rien et d'ailleurs dans aucun des écrans il a lieu d'exister.
Je l'ai donc supprimer
A présent j'ai un programme clean qui marche mieux qu'une Rolls!
Merci pour l'explication et je vais regarder le cours Bigonof sur le sujet et m’entraîner avec qq exemples
Quand je pense que je me suis nourri d'assembleur ttes mes journées depuis mon retour d'hosto
Mais j'adore
Encore un grand merci à toi
Je l'ai donc supprimer
A présent j'ai un programme clean qui marche mieux qu'une Rolls!
Merci pour l'explication et je vais regarder le cours Bigonof sur le sujet et m’entraîner avec qq exemples
Quand je pense que je me suis nourri d'assembleur ttes mes journées depuis mon retour d'hosto
Mais j'adore
Encore un grand merci à toi
LCD origine inconnu
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Bonjour à tous,
Je reviens sur le sujet pour une petite anomalie dans le programme et aussi pour vous montrer le projet fini.
Commençons par le projet.
Souvenez vous, j'avais comme projet de construire un méga ampli à lampe avec (pour sortir de l'ordinaire) une partie totalement numérique pour piloter et afficher les états des commandes par 5 boutons poussoirs et une télécommande. J'étais parti sur un pic 16f877 en asm et 1 afficheur LCD de récup 4 lignes x 40 caractères. Grâce à votre aide, j'étais parvenu à faire tourner ce programme et cela m'a permis d'aboutir au projet final. Il tourne depuis 1 mois et c'est une pure merveille à l'écoute. Avec un poids de + de 70kg et 1 volume impressionnant (60cm de large X 55 de profondeur et 50 de haut on pourrait reprendre ce que disait Pathé Marconi à propos de son matériel ; Le poids de son Maître! Je l'ai quand même baptisé le Minotaure! et il a grand succès auprès de tous les audiophiles avec qui je partage cette passion.
Côté anomalie, je constate depuis hier soir un bog à l'allumage, j'ai déjà eu ce phénomène lors de la mise au point de l'ampli mais j'avais pensé que la cause était liée aux désordres filaires autour de l'ampli. ça ne s'était jamais reproduit depuis sauf hier soir et ce matin.
Pour remédier au pb je dois faire plusieurs tentatives ou débrancher et rebrancher le 220 et au bout d'un moment tout rentre dans l'ordre sans trop savoir pourquoi.
A la mise sous tension, le programme fait n'importe quoi, il démarre direct sans avoir à appuyer sur la touche "ON" et il revient sur "OFF" et il fait ça en boucle.
Voir le programme [url=#29 par nondediode » sam. 15 déc. 2018 19:06]#29 par nondediode » sam. 15 déc. 2018 19:06[/url]
Je me rappelle avoir rencontré ce problème de bog de démarrage sur un autre ampli mais différent; c'était l'afficheur qui restait en off. J'avais corrigé le pb en rajoutant une tempo juste avant le départ du programme; du coup ça me donnait un blanc 1 ou 2 secondes et ensuite le programme se déroulait normalement.
Je pense lui faire la même punition ou y a-t-il une modif à faire plus simple ?
Encore merci à vous
JP
Je reviens sur le sujet pour une petite anomalie dans le programme et aussi pour vous montrer le projet fini.
Commençons par le projet.
Souvenez vous, j'avais comme projet de construire un méga ampli à lampe avec (pour sortir de l'ordinaire) une partie totalement numérique pour piloter et afficher les états des commandes par 5 boutons poussoirs et une télécommande. J'étais parti sur un pic 16f877 en asm et 1 afficheur LCD de récup 4 lignes x 40 caractères. Grâce à votre aide, j'étais parvenu à faire tourner ce programme et cela m'a permis d'aboutir au projet final. Il tourne depuis 1 mois et c'est une pure merveille à l'écoute. Avec un poids de + de 70kg et 1 volume impressionnant (60cm de large X 55 de profondeur et 50 de haut on pourrait reprendre ce que disait Pathé Marconi à propos de son matériel ; Le poids de son Maître! Je l'ai quand même baptisé le Minotaure! et il a grand succès auprès de tous les audiophiles avec qui je partage cette passion.
Côté anomalie, je constate depuis hier soir un bog à l'allumage, j'ai déjà eu ce phénomène lors de la mise au point de l'ampli mais j'avais pensé que la cause était liée aux désordres filaires autour de l'ampli. ça ne s'était jamais reproduit depuis sauf hier soir et ce matin.
Pour remédier au pb je dois faire plusieurs tentatives ou débrancher et rebrancher le 220 et au bout d'un moment tout rentre dans l'ordre sans trop savoir pourquoi.
A la mise sous tension, le programme fait n'importe quoi, il démarre direct sans avoir à appuyer sur la touche "ON" et il revient sur "OFF" et il fait ça en boucle.
Voir le programme [url=#29 par nondediode » sam. 15 déc. 2018 19:06]#29 par nondediode » sam. 15 déc. 2018 19:06[/url]
Je me rappelle avoir rencontré ce problème de bog de démarrage sur un autre ampli mais différent; c'était l'afficheur qui restait en off. J'avais corrigé le pb en rajoutant une tempo juste avant le départ du programme; du coup ça me donnait un blanc 1 ou 2 secondes et ensuite le programme se déroulait normalement.
Je pense lui faire la même punition ou y a-t-il une modif à faire plus simple ?
Encore merci à vous
JP
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
LCD origine inconnu
Bonjour,
il est vraiment beau, bravo, en fonctionnement il doit l'être encore plus.
Tu devrais joindre le programme actuel car il y eu pas mal de modifications depuis.
Il est câblé comment le bouton ?
Ce serait pas le problème abordé précédemment, des variables placées à des adresse inférieures à 0x20 ?
il est vraiment beau, bravo, en fonctionnement il doit l'être encore plus.
Tu devrais joindre le programme actuel car il y eu pas mal de modifications depuis.
Il est câblé comment le bouton ?
Ce serait pas le problème abordé précédemment, des variables placées à des adresse inférieures à 0x20 ?
LCD origine inconnu
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
LCD origine inconnu
LCD origine inconnu
-
nondediode
Amateur- Messages : 148
- Enregistré en : novembre 2018
- Localisation : Lyon
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 52 invités