proc_test: do not overflow preempt_counter on AVR.
[bertos.git] / bertos / drv / pwm.c
index ef18612e7541d028c5d31da0680b0ca74f2241bd..3062802032c0730d3f4ea22533fdcc7d12b0935d 100644 (file)
  * \author Daniele Basile <asterix@develer.com>
  */
 
+#include "cfg/cfg_pwm.h"
+
 #include <cfg/macros.h>
+#include <cfg/module.h>
+
+// Define logging setting (for cfg/log.h module).
+#define LOG_LEVEL         PWM_LOG_LEVEL
+#define LOG_VERBOSITY     PWM_LOG_FORMAT
+
+#include <cfg/log.h>
 #include <cfg/debug.h>
 
 #include <drv/pwm.h>
@@ -57,13 +66,13 @@ void pwm_setDuty(PwmDev dev, pwm_duty_t duty)
        pwm_period_t period = 0;
        pwm_duty_t real_duty = 0;
 
-       duty = MIN(duty, (pwm_duty_t)PWM_MAX_DUTY);
+       duty = MIN(duty, PWM_MAX_DUTY);
 
        period = pwm_hw_getPeriod(dev);
 
        real_duty = (uint64_t)(duty * period) >> (uint64_t)PWM_MAX_PERIOD_LOG2;
 
-//     TRACEMSG("real_duty[%d] duty[%d], period[%d]", real_duty, duty, period);
+       LOG_INFO("real_duty[%d] duty[%d], period[%d]", real_duty, duty, period);
        pwm_hw_setDutyUnlock(dev, real_duty);
 }
 
@@ -86,12 +95,14 @@ void pwm_enable(PwmDev dev, bool state)
                pwm_hw_disable(dev);
 }
 
+MOD_DEFINE(pwm);
+
 /**
  * Initialize PWM hw.
  */
 void pwm_init(void)
 {
-       cpuflags_t flags;
+       cpu_flags_t flags;
        PwmDev dev;
 
        IRQ_SAVE_DISABLE(flags);
@@ -103,6 +114,7 @@ void pwm_init(void)
                pwm_setDuty(dev, 0);
 
        IRQ_RESTORE(flags);
+       MOD_INIT(pwm);
 }