PieM
Senior Member
Bonjour,
plusieurs remarques:
prendre l'habitude d'utiliser des symboles pour nommer variables, entrées et sorties. Cela facilite la lecture et permet de modifier les affectations à un seul endroit.
Une phase de démarrage peut atteindre 800 fois 5ms soit 4s !
c'est à dire que pendant ce temps, le picaxe ne sait rien faire d'autre.
Et si il y a un remord, impossible d'arrêter avant la fin de la phase démarrage. Est ce bien judicieux ?
La vitesse est définie à priori par le potard, avant le démarrage. On constate à la fin du démarrage ?
Dans une boucle for a to b ... next , la boucle prend fin quand la valeur b est atteinte; inutile donc de tester if val = potie then exit.
si vous arrêtez le pwm par pwmout C.2, OFF, vous arrêtez la tâche de fond PWM, pour C.2 et C.1.
utilisez
pwmduty C.2, 0
ou bien les entrées D.0 et D.1 qui définissent le sens: les 2 au même niveau provoquent l'arrêt du moteur.
Dans votre prog, il ne sert à rien de balayer tout si vous êtes à l’arrêt !
vous avez un pwmduty en ligne 29 qui est systématiquement modifié par une réinitialisation en ligne 32 qd vous démarrez.
Initialisez par pwmout pwmdiv16, c.2, 255,0 en début, avant le main:
Autre chose, je croyais que les vitesses maxi étaient définies par des valeurs mises en mémoire (vos trimmers du début) et qu'en auto, la commande était simplement arrêt, marche AV, marche AR.
Par contre qu'en mode manuel, vous pouviez faire varier la vitesse en continu.
Donc quel est l'objectif de ce programme ? Car pour moi ce n'est pas clair.
Votre principe d'un BP pour mise en marche et arrêt ne me semble pas très judicieux pour une future automatisation!
Utilisez au moins un flag (0 ou 1) pour savoir si on est en marche ou à l'arrêt; Et c'est son état (modifiable en cas d'automatisation) qui permet de lancer la procédure marche ou arrêt.
Et je répète qu'il faut avoir une vue d'ensemble de ce que doit faire le programme, car ce n'est pas en juxtaposant des petits bouts qu'on fait un programme fonctionnel.
plusieurs remarques:
prendre l'habitude d'utiliser des symboles pour nommer variables, entrées et sorties. Cela facilite la lecture et permet de modifier les affectations à un seul endroit.
Une phase de démarrage peut atteindre 800 fois 5ms soit 4s !
c'est à dire que pendant ce temps, le picaxe ne sait rien faire d'autre.
Et si il y a un remord, impossible d'arrêter avant la fin de la phase démarrage. Est ce bien judicieux ?
La vitesse est définie à priori par le potard, avant le démarrage. On constate à la fin du démarrage ?
Dans une boucle for a to b ... next , la boucle prend fin quand la valeur b est atteinte; inutile donc de tester if val = potie then exit.
si vous arrêtez le pwm par pwmout C.2, OFF, vous arrêtez la tâche de fond PWM, pour C.2 et C.1.
utilisez
pwmduty C.2, 0
ou bien les entrées D.0 et D.1 qui définissent le sens: les 2 au même niveau provoquent l'arrêt du moteur.
Dans votre prog, il ne sert à rien de balayer tout si vous êtes à l’arrêt !
vous avez un pwmduty en ligne 29 qui est systématiquement modifié par une réinitialisation en ligne 32 qd vous démarrez.
Initialisez par pwmout pwmdiv16, c.2, 255,0 en début, avant le main:
Autre chose, je croyais que les vitesses maxi étaient définies par des valeurs mises en mémoire (vos trimmers du début) et qu'en auto, la commande était simplement arrêt, marche AV, marche AR.
Par contre qu'en mode manuel, vous pouviez faire varier la vitesse en continu.
Donc quel est l'objectif de ce programme ? Car pour moi ce n'est pas clair.
Votre principe d'un BP pour mise en marche et arrêt ne me semble pas très judicieux pour une future automatisation!
Utilisez au moins un flag (0 ou 1) pour savoir si on est en marche ou à l'arrêt; Et c'est son état (modifiable en cas d'automatisation) qui permet de lancer la procédure marche ou arrêt.
Et je répète qu'il faut avoir une vue d'ensemble de ce que doit faire le programme, car ce n'est pas en juxtaposant des petits bouts qu'on fait un programme fonctionnel.