Bonjour,
Comme écrit dans le titre, j'aimerais piloter 6 servo moteur via un pic (18F46K22 mais ca peux changer)
ce pic recevra des ordres d'une autre cpu (ou pc pourquoi pas pour les test ?) via son port uart utiliser en RS485 à 9600 baude, cette partie communication entre pic et autre cpu ne pause pas de problème.
attention que cette communication va créer des interruptions en émission et en réception des bytes des tram envoyée et recues.
j'utilise aussi le timer 0 pour cadencer le programme à 10ms (calcul du delay entre fin réception tram et début envoie réponse)
le problème c'est de piloter les 6 servos.
pour l'instant je vais me contenter d'un seul servo mais j'essaye de garder en tête les 5 autres (1 chose à la fois)
j'ai tout d'abord essayer d'utiliser un interupt 16bit TMR1 toute les 30µs qui inc une variable qui jusque Ton met la pinne à 1 et puis à 0
cela marchait pas trop mal mais quand la communication UART arrive, une sorte d'offset provoquer par les intéruption de l'uart fait faire des petit raté au servo.
j'ai aussi essayer (pour diminuer le nombre d'interupt TMR1) de chargé le timer1 de façon différente pour Ton et puis Toff comme ceci:
pinne à 1 et chargement Ton
interupt TMR1 : pinne à 0 et chargement Toff
interupt TMR1 : pinne à 1 et chargement Toff
...
cela fonctionne mieux mais toujours sensible à l'offset provoqué par les interruption de l'uart et en plus de temps en temps aussi par le timer 0
je voulais rendre l'interupt TMR1 prioritaire mais là j'ai lu a plusieurs endroit qu'il est impossible d’interrompre une procédure ISR par une autre de priorité supérieure, donc j'abandonne aussi cette piste pour l'instant.
je cherche donc pour l'instant à utiliser un pwm qui lui restara constant quelque soit le timing des interupt, le probleme est que la fréquence de 50hz est tres lente pour le pic et sauf erreur dans mes calcul je devrai diminuer la fréquence du pic à 1Mhz pour avoir une periode de 16ms et il semble que le reglage à 9600 baude soit encore tout juste possible.
je vais tester cela desuite.
mais avez vous des commantaire sur mes essai, des suggestion, des corrections ou même d'autre idées ?
merci d'avance pour votre aide.
-----