Bonjour,
Je viens de commander un servomoteur :
http://www.sparkfun.com/commerce/pro...oducts_id=9347
Afin de l'utiliser je dois générer une PWM sur son entrée et celui si ce déplacera jusqu'à l'angle adéquat (déplacement horaire et antihoraire).
J'utilise C18 et un pic 18F448, un quartz a 4MHz.
J'ai choisi une fréquence 50hz et aimerai avoir une PWM a l'état haut durant 2ms. (me confirmez vous que ces valeurs sont plausible?)
Je regarde sur la datasheet de C18, mais je butte avec leur explication...
apres remise en forme et avec Tosc = 250nsvoid OpenPWM1 ( char period)
period
Can be any value from 0x00 to 0xff. This value determines the PWM
frequency by using the following formula:
PWM period =[(period ) + 1] x 4 x TOSC x TMR2 prescaler
le paramètre de la fonction :
period = 20ms ÷ (4 X 250ns) - 1
period = 19 999
Sauf que la Datasheet explique que perdio varie entre 0x00 et 0xFF (255)
Je pense soit avoir un problème d'unité (non précisé dans datasheet), et aussi sûrement un problème de prescaler que j'ai considéré = 1 (jamais touché)
Pouvez-vous me confirmer ces points ?
Pour le rapport cyclique... je nage dans les unités...
Tosc doit etre exprimé en secondes ?The value of dutycycle can be any 10-bit number. Only the lower
10-bits of dutycycle are written into the duty cycle registers. The duty
cycle, or more specifically the high time of the PWM waveform, can be
calculated from the following formula:
PWM x Duty cycle = (DCx<9:0>) x TOSC
where DCx<9:0> is the 10-bit value specified in the call to this function.
PWM ? en secondes aussi ?
Duty cycle = % ou le high time of the PWM waveform?
Un grand merci déjà de m'avoir lu !
En prenant des valeurs un peu au hasard...
Le servomoteur tourne... toujours dans le même sens (j'aimerai bien qu'il change aussi)...
Malheureusement je n'ai pas d'oscilloscope, ça aurait été très très utile...
Bonne bonne soirée
-----