summaryrefslogtreecommitdiff
path: root/src/c/hardware/avr/pwm/u8AVRPWMSetDutys.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/c/hardware/avr/pwm/u8AVRPWMSetDutys.c')
-rw-r--r--src/c/hardware/avr/pwm/u8AVRPWMSetDutys.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/c/hardware/avr/pwm/u8AVRPWMSetDutys.c b/src/c/hardware/avr/pwm/u8AVRPWMSetDutys.c
new file mode 100644
index 0000000..adb186a
--- /dev/null
+++ b/src/c/hardware/avr/pwm/u8AVRPWMSetDutys.c
@@ -0,0 +1,39 @@
+// Function to set duty for PWM of AVR
+//
+// Calling Sequence
+// u8AVRPWMSetDutys(uint8 timer, uint8 duty)
+//
+// Parameters
+// timer: timer to be used for PWM generation (0,1,2)
+// duty: duty for PWM waveform (0-100)
+//
+// Description
+// This function sets duty for PWM waveform according to given parameters.
+//
+// Examples
+// u8AVRPWMSetDutys(0,10) //Sets 10% duty for timer 0 output.
+//
+// Authors
+// Siddhesh Wani
+//
+
+#include "AVRPeripheralPWM.h"
+
+uint8 u8AVRPWMSetDutys(uint8 timer, uint8 duty)
+{
+ uint8 duty_value=0;
+
+ switch(timer)
+ {
+ case 0:
+ duty_value = (uint8)(((uint16)(duty * 0xff))/100);
+ OCR0 = duty_value;
+ break;
+ case 2:
+ duty_value = (uint8)(((uint16)(duty * 0xff))/100);
+ OCR2 = duty_value;
+ break;
+ }
+
+
+}