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 : Jérémy
2 boucles infinies dans un programme
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonsoir ,
Est ce gênant d'avoir deux boucles infinies dans un programme. Je pose la question pour savoir la "BONNE" façon de faire en fait.
En effet dans mon Compte à rebours, j’ai mon programme principale qui est une boule infinie pour mettre a jour mon chrono avec l'encodeur . Et au lancement du compte à rebours , je rentre dans une autre boucle infinie pour décompter et afficher le chrono.
est -ce gênant de procéder comme cela ? connaissez vous une autre façon plus académiques ?
bien à vous
Est ce gênant d'avoir deux boucles infinies dans un programme. Je pose la question pour savoir la "BONNE" façon de faire en fait.
En effet dans mon Compte à rebours, j’ai mon programme principale qui est une boule infinie pour mettre a jour mon chrono avec l'encodeur . Et au lancement du compte à rebours , je rentre dans une autre boucle infinie pour décompter et afficher le chrono.
est -ce gênant de procéder comme cela ? connaissez vous une autre façon plus académiques ?
bien à vous
2 boucles infinies dans un programme
2 boucles infinies dans un programme
2 boucles infinies dans un programme
2 boucles infinies dans un programme
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Donc elle n'a pas lieu d'être.
??? je ne comprends pas .???
ma boucle de réglage doit être forcement une boucle étant donné que je checke mon encodeur en permanence pour voir si on le tourne et affiché le nouveau chiffre;
Et ma deuxième boucle aussi car elle doit être mettre a jour l'affichage en permanence lors du lancement du chrono.
2 boucles infinies dans un programme
Bonjour
Une boucle infinie est une boucle ou le programme ne sort jamais, et donc sans modification possible de l’environnement, des variables etc.. du style allez à boucle qui te repositionne sur allez a boucle, cela peut être aussi, un joli bug qui te fait tourner en rond et pour en sortir il ne te reste qu'un RAZ.
Ce que tu décris ici est une boucle qui test ton encodeur appelons la scrutation encodeur, si action de ton encodeur tu sorts de cette boucle sinon tu retournes sur scrutation encodeur
si action encodeur allez vers une autre boucle appelons la affichage qui lorsque la boucle l'affichage sera terminé, retournera sur la boucle scrutation encodeur donc ce n'est pas des boucles infinies, puis tu as la possibilité de sortir de tes boucles et effectuer des modification de ton environnement
il y a ici une boucle principale scrutation de l'encodeur et une boucle secondaire affichage sinon si cela te fait plaisir c'est le contraire
Remarque: les boucles secondaires peuvent appeler d’autres boucles tout comme les boucles principales, c'est le même principe que les spg qui peuvent appeler d’autres spg ECT.... le but final est quand même de retourner a la boucle principale ici scrutation encodeur
Le plus lisible AMHA est de partir avec une seule boucle scrutation encodeur
1/lorsque tu es en mode entrée données tu appels des spg incrémentation ou décrémentation qu'ils modifient ta variable ou tes variables qui a leur tour appel le SPG affichage puis retour à la boucle principale.
2/ lorsque tu passes en mode chrono décrémentation de ta variable ou de tes variables puis appel spg affichage et retour a ta boucle principale
Avec dans ta boucle principale priorité au chrono et oui il ne faut pas que tu puisses modifier ta variable ou tes variables et il faut aussi que tu puisses sortir de chrono même s'il ce n'est pas la fin du décomptage au cas ou... et donc faire un reset du programme
Donc en résumé: dans ta boucle il te faut:
un test si RAZ un test si chrono en tête de boucle prioritaire puis un test si + et un test si -
Je dois avoir cela en ASM si tu veux je te le post avec affichage sur un KS0108S avec trois boutons + - validation comme un encodeur
A+
PS un petit bout de code gestion clavier ou encodeur
Une boucle infinie est une boucle ou le programme ne sort jamais, et donc sans modification possible de l’environnement, des variables etc.. du style allez à boucle qui te repositionne sur allez a boucle, cela peut être aussi, un joli bug qui te fait tourner en rond et pour en sortir il ne te reste qu'un RAZ.
Ce que tu décris ici est une boucle qui test ton encodeur appelons la scrutation encodeur, si action de ton encodeur tu sorts de cette boucle sinon tu retournes sur scrutation encodeur
si action encodeur allez vers une autre boucle appelons la affichage qui lorsque la boucle l'affichage sera terminé, retournera sur la boucle scrutation encodeur donc ce n'est pas des boucles infinies, puis tu as la possibilité de sortir de tes boucles et effectuer des modification de ton environnement
il y a ici une boucle principale scrutation de l'encodeur et une boucle secondaire affichage sinon si cela te fait plaisir c'est le contraire
Remarque: les boucles secondaires peuvent appeler d’autres boucles tout comme les boucles principales, c'est le même principe que les spg qui peuvent appeler d’autres spg ECT.... le but final est quand même de retourner a la boucle principale ici scrutation encodeur
Le plus lisible AMHA est de partir avec une seule boucle scrutation encodeur
1/lorsque tu es en mode entrée données tu appels des spg incrémentation ou décrémentation qu'ils modifient ta variable ou tes variables qui a leur tour appel le SPG affichage puis retour à la boucle principale.
2/ lorsque tu passes en mode chrono décrémentation de ta variable ou de tes variables puis appel spg affichage et retour a ta boucle principale
Avec dans ta boucle principale priorité au chrono et oui il ne faut pas que tu puisses modifier ta variable ou tes variables et il faut aussi que tu puisses sortir de chrono même s'il ce n'est pas la fin du décomptage au cas ou... et donc faire un reset du programme
Donc en résumé: dans ta boucle il te faut:
un test si RAZ un test si chrono en tête de boucle prioritaire puis un test si + et un test si -
Je dois avoir cela en ASM si tu veux je te le post avec affichage sur un KS0108S avec trois boutons + - validation comme un encodeur
A+
PS un petit bout de code gestion clavier ou encodeur
Code : Tout sélectionner
;********************************************************************
;clavier 3 boutons PLUS , MOINS, sélection digit
;la sélection digit déclenche le décomptage si appui prolongé
;sert aussi a arrêt du décomptage au cas ou.... et la RAZ du compteur
;********************************************************************
CLAVIER BTFSS SEL_DIG ; selection digit
BRA CLAV1
BTFSC DECOMPT ; on est en decomptage?
BRA DECOMP ; oui
BTFSS PLU_DIG ;plus
BRA CLAV2
BTFSS MOI_DIG
BRA CLAV3 ;moins
BTFSS Tcurs,2
BRA CLAVIER ;gestion du curseur?
;********************** gestion du curseur **************************
CURSEUR CLRF Tcurs
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 66 invités