Bonsoir,
Voilà mon contexte: j'ai un pic 16f628A. A ces I/O j'aurais 2 L297 qui commanderont chacun 1 L298 qui seront eux-même reliés à un moteur pas à pas bipolaire. Jusque là tout va bien !
Voilà mon problème: chaque moteur devra pouvoir être piloté indépendament. J'entends par ça: à la fin je veux pouvoir faire faire des séquences à mes moteurs de type 2s en avant pour le moteur 1 à une vitesse X et 3s en arrière pour le moteur 2 à une vitesse Y. Le moteur doit également pouvoir être à l'arrêt pendant une certaine durée.
J'utilise CC5x sous piklab (mais je suis pas figé si quelqu'un me propose quelquechose de mieux et de facilement configurable).
Pour le moment je suis parti sur une structure de ce type:
- le timer 1 avec le prédiviseur qui génère un signal toutes les 500ms.
- le timer 0 qui génère un signal toutes les x millisecondes.
J'aurais une fonction de type:
void moteur_mouvement(temps,directi on_1,deplacement_1,direction_2 ,deplacement_2)
Cette fonction pilote les 2 moteurs sur une base de temps commune (inconvénient de cette méthode mais que je suis prêt à accepter).
Du coup au début de cette fonction:
- j'ai un init qui me configure: le timer 1 , les compteurs de tempo pour chaque moteur, le nombre de pas à effecteur , la durée entre 2 pas pour chaque moteur
- a chaque passage dans la fonction (lancée dans le main), si l'init a été effectuée, elle détecte si le timer 0 a déclenché un nouveau toc.
Bon c'est un peu simplifié mais je voulais pas faire trop pénible.
Est-ce que vous auriez d'autres suggestions (méthode plus simple plutôt).
Merci d'avance
-----