From 9e506f48291533cba7b4c555b0d2e98f234bfbe3 Mon Sep 17 00:00:00 2001 From: siddhu8990 Date: Wed, 19 Apr 2017 14:28:34 +0530 Subject: Merged Ashish's work --- macros/Hardware/AVR/AVRPWM0Setup.sci | 68 ++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 macros/Hardware/AVR/AVRPWM0Setup.sci (limited to 'macros/Hardware/AVR/AVRPWM0Setup.sci') 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 -- cgit From aef4e8398f2b1848b0e4cdd9580dbbe93e4006f9 Mon Sep 17 00:00:00 2001 From: Jorawar Singh Date: Fri, 30 Jun 2017 11:28:58 +0530 Subject: Help files, modified Raspberry Pi code conversion --- macros/Hardware/AVR/AVRPWM0Setup.sci | 57 ++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 26 deletions(-) (limited to 'macros/Hardware/AVR/AVRPWM0Setup.sci') diff --git a/macros/Hardware/AVR/AVRPWM0Setup.sci b/macros/Hardware/AVR/AVRPWM0Setup.sci index 39861c86..c391f71e 100644 --- a/macros/Hardware/AVR/AVRPWM0Setup.sci +++ b/macros/Hardware/AVR/AVRPWM0Setup.sci @@ -10,43 +10,48 @@ function AVRPWM0Setup(waveform_mode,output_mode) //Function to Setup OC0 pin for required PWM mode +// +//Parameters +// waveform_mode: integer, from 0 to 2 +// output_mode: integer, from 0 to 1 (or 2) depending on the waveform_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 +// waveform_mode can take values- +// +// 0 -> for Phase correct PWM Mode +// 1 -> for Fast PWM Mode +// 2 -> for CTC Mode +// +// +// output_mode can take values- +// +// 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 +// +// +// This is curretly dummy function. It provides no functionality but is required +// for providing support for generating C code for AVR. +// +//Examples +// 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."); -- cgit