summaryrefslogtreecommitdiff
path: root/src/c/hardware/avr/pwm
diff options
context:
space:
mode:
authorsiddhu89902015-12-17 14:48:36 +0530
committersiddhu89902015-12-17 14:48:36 +0530
commit4e3eef82b0aa598761e087925fabe835496ab3bc (patch)
tree5b046acee2453c83fc1d776221373c3992147e7a /src/c/hardware/avr/pwm
parent96b51a5ded447676d493be9721e4480065a5ae7e (diff)
downloadScilab2C_fossee_old-4e3eef82b0aa598761e087925fabe835496ab3bc.tar.gz
Scilab2C_fossee_old-4e3eef82b0aa598761e087925fabe835496ab3bc.tar.bz2
Scilab2C_fossee_old-4e3eef82b0aa598761e087925fabe835496ab3bc.zip
Code generation for Arduino changed. DC motor added to Arduino
Diffstat (limited to 'src/c/hardware/avr/pwm')
-rw-r--r--src/c/hardware/avr/pwm/u8AVRPWMSetDutys.c39
-rw-r--r--src/c/hardware/avr/pwm/u8AVRPWMSetups.c (renamed from src/c/hardware/avr/pwm/u8AVRADCSetups.c)6
2 files changed, 45 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;
+ }
+
+
+}
diff --git a/src/c/hardware/avr/pwm/u8AVRADCSetups.c b/src/c/hardware/avr/pwm/u8AVRPWMSetups.c
index cd1d12b..5110d81 100644
--- a/src/c/hardware/avr/pwm/u8AVRADCSetups.c
+++ b/src/c/hardware/avr/pwm/u8AVRPWMSetups.c
@@ -48,6 +48,12 @@ uint8 u8AVRPWMSetups(uint8 timer, uint8 prescalar, uint8 waveform_mode, uint8 ou
case 1:
break;
case 2:
+ TCCR2|= (prescalar & 0x07); //Select clock source
+ //Select waveform generation mode
+ TCCR2|= ((waveform_mode & 0x04) << 4);
+ //Select compare output mode
+ TCCR2 |= ((output_mode & 0x01) << 3); //WGM0
+ TCCR2 |= ((output_mode & 0x02) << 6); //WGM1
break;
}