Merge contributed patch to extend support of atxmega.
[bertos.git] / bertos / cpu / avr / drv / pwm_avr.c
index d10988adee010a388c2fccf7e6bbe6b28abb957b..bea3ef5f2ae83a7be4cf2fc3f51d6a38e32651e1 100644 (file)
  *
  * \brief Low-level PWM module for AVR (inplementation).
  *
- * \version $Id$
  *
  * \author Daniele Basile <asterix@develer.com>
  *
  */
 
-#include <cpu/detect.h>
 
-#if CPU_AVR
-       #warning TODO:No AVR implementation of PWM.
-/*#elif  Add other AVR families here */
-#else
-       #error Unknown CPU
-#endif
+#include "pwm_avr.h"
+#include <hw/hw_cpufreq.h>
+
+#warning TODO:This is an exmple of implementation of PWM low level channel for AVR, implemnt it!
+
+/**
+ * Set PWM polarity to select pwm channel
+ */
+void pwm_hw_setPolarity(PwmDev dev, bool pol)
+{
+
+       /*
+        * Put here a code to PWM polarity of select
+        * PWM channel
+        */
+
+       //Only for test remove when implement this function
+       (void)dev;
+       (void)pol;
+}
+
+/**
+ * Get preiod from select channel
+ *
+ * \a dev channel
+ */
+pwm_period_t pwm_hw_getPeriod(PwmDev dev)
+{
+       /*
+        * Put here a code to get period value of select
+        * PWM channel
+        */
+
+       //Only for test remove when implement this function
+       (void)dev;
+
+       return 0;
+}
+
+/**
+ * Set pwm waveform frequecy.
+ *
+ * \a freq in Hz
+ */
+void pwm_hw_setFrequency(PwmDev dev, uint32_t freq)
+{
+       /*
+        * Put here a code to set frequency of select
+        * PWM channel
+        */
+
+       //Only for test remove when implement this function
+       (void)dev;
+       (void)freq;
+
+}
+
+/**
+ * Set pwm duty cycle.
+ *
+ * \a duty value 0 - 2^16
+ */
+void pwm_hw_setDutyUnlock(PwmDev dev, uint16_t duty)
+{
+       /*
+        * Put here a code to set duty of select
+        * PWM channel
+        */
+
+       //Only for test remove when implement this function
+       (void)dev;
+       (void)duty;
+
+}
+
+
+/**
+ * Enable select pwm channel
+ */
+void pwm_hw_enable(PwmDev dev)
+{
+       /*
+        * Put here a code to enable
+        * a select PWM channel
+        */
+
+       //Only for test remove when implement this function
+       (void)dev;
+}
+
+/**
+ * Disable select pwm channel
+ */
+void pwm_hw_disable(PwmDev dev)
+{
+       /*
+        * Put here a code to disable
+        * a select PWM channel
+        */
+
+       //Only for test remove when implement this function
+       (void)dev;
+}
+
+
+/**
+ * Init pwm.
+ */
+void pwm_hw_init(void)
+{
+       /*
+        * Put here a code to init
+        * a PWM hawdware
+        */
+}
+
+
+
+