projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix undefined behaviour.
[bertos.git]
/
bertos
/
cpu
/
arm
/
drv
/
pwm_at91.c
diff --git
a/bertos/cpu/arm/drv/pwm_at91.c
b/bertos/cpu/arm/drv/pwm_at91.c
index 411f3ab690df18f31c2d7c945f55aa036c8fcd9d..397240ec2318f51e6971c52c3639aee3f5796351 100644
(file)
--- a/
bertos/cpu/arm/drv/pwm_at91.c
+++ b/
bertos/cpu/arm/drv/pwm_at91.c
@@
-33,7
+33,6
@@
*
* \brief PWM hardware-specific implementation
*
*
* \brief PWM hardware-specific implementation
*
- * \version $Id$
* \author Daniele Basile <asterix@develer.com>
*/
* \author Daniele Basile <asterix@develer.com>
*/
@@
-146,6
+145,16
@@
void pwm_hw_setDutyUnlock(PwmDev dev, uint16_t duty)
ASSERT(duty <= (uint16_t)*pwm_map[dev].period_reg);
ASSERT(duty <= (uint16_t)*pwm_map[dev].period_reg);
+ /*
+ * If polarity flag is true we must invert
+ * PWM polarity.
+ */
+ if (pwm_map[dev].pol)
+ {
+ duty = (uint16_t)*pwm_map[dev].period_reg - duty;
+ LOG_INFO("Inverted duty[%d], pol[%d]\n", duty, pwm_map[dev].pol);
+ }
+
/*
* WARNING: is forbidden to write 0 to duty cycle value,
* and so for duty = 0 we must enable PIO and clear output!
/*
* WARNING: is forbidden to write 0 to duty cycle value,
* and so for duty = 0 we must enable PIO and clear output!
@@
-158,16
+167,6
@@
void pwm_hw_setDutyUnlock(PwmDev dev, uint16_t duty)
}
else
{
}
else
{
- /*
- * If polarity flag is true we must invert
- * PWM polarity.
- */
- if (pwm_map[dev].pol)
- {
- duty = (uint16_t)*pwm_map[dev].period_reg - duty;
- LOG_INFO("Inverted duty[%d], pol[%d]\n", duty, pwm_map[dev].pol);
- }
-
PWM_PIO_PDR = pwm_map[dev].pwm_pin;
PWM_PIO_ABSR = pwm_map[dev].pwm_pin;
PWM_PIO_PDR = pwm_map[dev].pwm_pin;
PWM_PIO_ABSR = pwm_map[dev].pwm_pin;