summaryrefslogtreecommitdiff
path: root/macros/Hardware/AVR/AVRPWM0Setup.sci
diff options
context:
space:
mode:
authorsiddhu89902017-04-19 14:28:34 +0530
committersiddhu89902017-04-19 14:28:34 +0530
commit9e506f48291533cba7b4c555b0d2e98f234bfbe3 (patch)
tree6ffe38eefea51cdb767493850b2ada0c098fe416 /macros/Hardware/AVR/AVRPWM0Setup.sci
parent453598b49cb3d4a62b1797dbc90f0e3dd4521329 (diff)
downloadscilab2c-9e506f48291533cba7b4c555b0d2e98f234bfbe3.tar.gz
scilab2c-9e506f48291533cba7b4c555b0d2e98f234bfbe3.tar.bz2
scilab2c-9e506f48291533cba7b4c555b0d2e98f234bfbe3.zip
Merged Ashish's work
Diffstat (limited to 'macros/Hardware/AVR/AVRPWM0Setup.sci')
-rw-r--r--macros/Hardware/AVR/AVRPWM0Setup.sci68
1 files changed, 68 insertions, 0 deletions
diff --git a/macros/Hardware/AVR/AVRPWM0Setup.sci b/macros/Hardware/AVR/AVRPWM0Setup.sci
new file mode 100644
index 00000000..39861c86
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM0Setup.sci
@@ -0,0 +1,68 @@
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
+//
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+// Organization: FOSSEE, IIT Bombay
+// Email: toolbox@scilab.in
+
+function AVRPWM0Setup(waveform_mode,output_mode)
+//Function to Setup OC0 pin for required PWM mode
+//Description
+// Every Micro controller has PWM pins which can generate varying voltages
+// from 0V-5V.This function helps to use OC0 pin to produce required
+// output waveform by setting the waveform mode and otput mode.
+//
+//Parameters
+// waveform_mode:
+// 0 for Phase correct PWM Mode
+// 1 for Fast PWM Mode
+// 2 for CTC Mode
+// output_mode:
+// For Phase Correct PWM Mode:
+// 0 for Clear OC0 on compare match when up-counting. Set OC0 on compare
+// match when down-counting.
+// 1 for Set OC0 on compare match when up-counting. Clear OC0 on compare
+// match when down-counting.
+//
+// For Fast PWM Mode:
+// 0 for non-inverted output i.e Clear OC0 on compare match, set OC0 at BOTTOM.
+// 1 for inverted output i.e Set OC0 on compare match, clear OC0 at BOTTOM.
+//
+// For CTC Mode:
+// 0 to Clear OC0 on compare match
+// 1 to Set OC0 on compare match
+// 2 to toggle OC0 on compare match
+//
+//Example
+// AVRPWM0Setup(2,0); //This function will select CTC waveform mode and will clear OC0 on
+// compare match
+//See also
+// AVRPWM0SetDuty
+//
+//Authors
+// Ashish Kamble
+//
+//This is curretly dummy function. It provides no functionality but is required
+//for providing support for generating C code for AVR.
+
+if(waveform_mode>=3) then
+disp("Error : Invalid input argument ''waveform_mode'' in AVRPWM0Setup function.");
+end
+
+if((waveform_mode==0)|(waveform_mode==1)) then
+ if(output_mode>=2) then
+ disp("Error : Invalid input argument ''output_mode'' in AVRPWM0Setup function.");
+ end
+end
+
+
+if(waveform_mode==2) then
+ if(output_mode>=3) then
+ disp("Error : Invalid input argument ''output_mode'' in AVRPWM0Setup function.");
+ end
+end
+
+endfunction