Witam,
po prześledzeniu masy materiałów dotyczących obsługi PWM, oraz sterowania nim serwa nadal mam kilka pytań.
Następująco:
Pełen cykl serwa wynosi 50Hz czyli 20ms, podczas którego zwięszkając/zmniejszając wypełnienie o 0.5ms porusza się silnikiem.
Problem w tym aby dokładnie podzielić zegar procesora (który wynosi 4MHz) na 50Hz. Przy preskalerze o maks. wartości 1024, czas będzie wynosić 0.256ms, jak dalej go opóźnić? Poleceniem Waitms?
Przykładowy program obsługi PWM wygląda następująco:
Rozdzielczość PWM 8bit zapewnia 255 kroków co w zupełności wystarcza do sterowania serwem.
Będę wdzięczny za wszelkie rady w tej kwestii.
po prześledzeniu masy materiałów dotyczących obsługi PWM, oraz sterowania nim serwa nadal mam kilka pytań.
Następująco:
Pełen cykl serwa wynosi 50Hz czyli 20ms, podczas którego zwięszkając/zmniejszając wypełnienie o 0.5ms porusza się silnikiem.
Problem w tym aby dokładnie podzielić zegar procesora (który wynosi 4MHz) na 50Hz. Przy preskalerze o maks. wartości 1024, czas będzie wynosić 0.256ms, jak dalej go opóźnić? Poleceniem Waitms?
Przykładowy program obsługi PWM wygląda następująco:
Config Timer1 = Pwm, Pwm = 8, Prescale = 1024, Compare A Pwm = Clear Down
Do
Incr Pwm1a
If Pwm1a = 255 Then Pwm1a = 0
Waitms 5
Loop
EndRozdzielczość PWM 8bit zapewnia 255 kroków co w zupełności wystarcza do sterowania serwem.
Będę wdzięczny za wszelkie rady w tej kwestii.