diff options
author | px4dev <px4@purgatory.org> | 2012-08-05 16:31:04 -0700 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2012-08-05 16:31:04 -0700 |
commit | c513f5ade8a605721f0d9c859b1ba0a1f3949963 (patch) | |
tree | b87bcbc886af5a940bc5f88d3c7f4e0cefa849a0 /nuttx/configs/px4fmu/src/up_pwm_servo.c | |
parent | 59962bc3da97a102117e3d4e5c90b9062beb7180 (diff) | |
download | px4-firmware-c513f5ade8a605721f0d9c859b1ba0a1f3949963.tar.gz px4-firmware-c513f5ade8a605721f0d9c859b1ba0a1f3949963.tar.bz2 px4-firmware-c513f5ade8a605721f0d9c859b1ba0a1f3949963.zip |
Adjust some scaling factors for more precise PWM output.
Diffstat (limited to 'nuttx/configs/px4fmu/src/up_pwm_servo.c')
-rw-r--r-- | nuttx/configs/px4fmu/src/up_pwm_servo.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/nuttx/configs/px4fmu/src/up_pwm_servo.c b/nuttx/configs/px4fmu/src/up_pwm_servo.c index 05daf1e97..adb9b5030 100644 --- a/nuttx/configs/px4fmu/src/up_pwm_servo.c +++ b/nuttx/configs/px4fmu/src/up_pwm_servo.c @@ -164,10 +164,10 @@ pwm_timer_init(unsigned timer) rDCR(timer) = 0; /* configure the timer to free-run at 1MHz */ - rPSC(timer) = pwm_timers[timer].clock_freq / 1000000; + rPSC(timer) = (pwm_timers[timer].clock_freq / 1000000) - 1; /* and update at the desired rate */ - rARR(timer) = 1000000 / pwm_update_rate; + rARR(timer) = (1000000 / pwm_update_rate) - 1; /* generate an update event; reloads the counter and all registers */ rEGR(timer) = GTIM_EGR_UG; @@ -234,6 +234,8 @@ up_pwm_servo_set(unsigned channel, servo_position_t value) return -1; /* configure the channel */ + if (value > 0) + value--; switch (pwm_channels[channel].timer_channel) { case 1: rCCR1(timer) = value; |