summaryrefslogtreecommitdiff
path: root/analog/motor-power-avr/src/mp_pwm_L_.c
diff options
context:
space:
mode:
authorGuillaume Chevillot2008-03-06 08:51:44 +0100
committerGuillaume Chevillot2008-03-06 08:51:44 +0100
commit0de7df3fdc1360c60d029fb8ed623c60f9099623 (patch)
treeb5d526c74ee0662cbe7384380f5a29c343a20a38 /analog/motor-power-avr/src/mp_pwm_L_.c
parenta9c80bb5dbc4c07c0babcc3152005170892dfa84 (diff)
Corrected PWM generation. Seems to work fine now.
Diffstat (limited to 'analog/motor-power-avr/src/mp_pwm_L_.c')
-rw-r--r--analog/motor-power-avr/src/mp_pwm_L_.c45
1 files changed, 21 insertions, 24 deletions
diff --git a/analog/motor-power-avr/src/mp_pwm_L_.c b/analog/motor-power-avr/src/mp_pwm_L_.c
index da54dbe6..a9e49943 100644
--- a/analog/motor-power-avr/src/mp_pwm_L_.c
+++ b/analog/motor-power-avr/src/mp_pwm_L_.c
@@ -40,7 +40,7 @@ ISR(L_OVF_vect) {
state_L_ = state_L_cmd;
// the falling of the other side may have delayed a few our IT
- OCR_L_ = pwm_L_ + TCNT_L_; // TODO: OCR_L_value shall be > than x%
+ OCR_L_ = pwm_L_;
//PC = PC + state_L_; // j'aurais bien aimé faire un calculated jump
@@ -173,34 +173,31 @@ ISR(ILIM_L_vect) {
void start_motor_L_ (uint8_t pwmspeed, uint8_t direction) {
// checking direction
if (direction)
- {
- state_L_cmd = CMD_STATE_DIR_1;
- }
+ {
+ state_L_cmd = CMD_STATE_DIR_1;
+ }
else
- {
- state_L_cmd = CMD_STATE_DIR_0;
- }
+ {
+ state_L_cmd = CMD_STATE_DIR_0;
+ }
// setting pwm value
if (pwmspeed == 0)
- {// brake
- state_L_cmd = CMD_STATE_BRAKE;
- pwm_L_ = 0;
- }
+ {// brake
+ state_L_cmd = CMD_STATE_BRAKE;
+ pwm_L_ = 0;
+ }
else
- {
- // adding offset
- pwmspeed = pwmspeed + PWM_OFFSET_LR_;
-
- if (pwmspeed > PWM_MAX_LR_)
- {// over PWM_MAX_LR_
- pwm_L_ = PWM_MAX_LR_;
- }
- else if (pwmspeed < PWM_MIN_LR_)
- {// under PWM_MIN_LR_
- pwm_L_ = PWM_MIN_LR_;
- }
- }
+ {
+ // adding offset
+ pwmspeed = pwmspeed + PWM_OFFSET_LR_;
+
+ // clamp the value
+ UTILS_BOUND(pwmspeed, PWM_MIN_LR_, PWM_MAX_LR_);
+
+ // Apply the value
+ pwm_L_ = pwmspeed;
+ }
}
// puts motor in high Z