summaryrefslogtreecommitdiff
path: root/macros/Hardware
diff options
context:
space:
mode:
Diffstat (limited to 'macros/Hardware')
-rw-r--r--macros/Hardware/AVR/AVRADCSetup.binbin4168 -> 5156 bytes
-rw-r--r--macros/Hardware/AVR/AVRADCSetup.sci31
-rw-r--r--macros/Hardware/AVR/AVRDigitalIn.binbin3688 -> 4808 bytes
-rw-r--r--macros/Hardware/AVR/AVRDigitalIn.sci22
-rw-r--r--macros/Hardware/AVR/AVRDigitalOut.binbin3760 -> 5320 bytes
-rw-r--r--macros/Hardware/AVR/AVRDigitalOut.sci23
-rw-r--r--macros/Hardware/AVR/AVRDigitalPortSetup.binbin0 -> 5132 bytes
-rw-r--r--macros/Hardware/AVR/AVRDigitalPortSetup.sci47
-rw-r--r--macros/Hardware/AVR/AVRDigitalSetup.binbin3932 -> 5528 bytes
-rw-r--r--macros/Hardware/AVR/AVRDigitalSetup.sci25
-rw-r--r--macros/Hardware/AVR/AVRGetTimerValue.binbin3564 -> 3256 bytes
-rw-r--r--macros/Hardware/AVR/AVRGetTimerValue.sci41
-rw-r--r--macros/Hardware/AVR/AVRPWM0SetDuty.binbin0 -> 3536 bytes
-rw-r--r--macros/Hardware/AVR/AVRPWM0SetDuty.sci35
-rw-r--r--macros/Hardware/AVR/AVRPWM0Setup.binbin0 -> 8196 bytes
-rw-r--r--macros/Hardware/AVR/AVRPWM0Setup.sci68
-rw-r--r--macros/Hardware/AVR/AVRPWM1SetDuty.binbin0 -> 6764 bytes
-rw-r--r--macros/Hardware/AVR/AVRPWM1SetDuty.sci52
-rw-r--r--macros/Hardware/AVR/AVRPWM1Setup.binbin0 -> 10600 bytes
-rw-r--r--macros/Hardware/AVR/AVRPWM1Setup.sci79
-rw-r--r--macros/Hardware/AVR/AVRPWM2SetDuty.binbin0 -> 3580 bytes
-rw-r--r--macros/Hardware/AVR/AVRPWM2SetDuty.sci38
-rw-r--r--macros/Hardware/AVR/AVRPWM2Setup.binbin0 -> 8464 bytes
-rw-r--r--macros/Hardware/AVR/AVRPWM2Setup.sci69
-rw-r--r--macros/Hardware/AVR/AVRPWMSetDuty.binbin2428 -> 0 bytes
-rw-r--r--macros/Hardware/AVR/AVRPWMSetDuty.sci24
-rw-r--r--macros/Hardware/AVR/AVRPWMSetup.binbin5760 -> 0 bytes
-rw-r--r--macros/Hardware/AVR/AVRPWMSetup.sci39
-rw-r--r--macros/Hardware/AVR/AVRReadADC.binbin4048 -> 4840 bytes
-rw-r--r--macros/Hardware/AVR/AVRReadADC.sci21
-rw-r--r--macros/Hardware/AVR/AVRSleep.binbin0 -> 88 bytes
-rw-r--r--macros/Hardware/AVR/AVRSleep.sci4
-rw-r--r--macros/Hardware/AVR/AVRTimerSetup.binbin3480 -> 7880 bytes
-rw-r--r--macros/Hardware/AVR/AVRTimerSetup.sci75
-rw-r--r--macros/Hardware/AVR/AVRUARTReceive.binbin0 -> 2504 bytes
-rw-r--r--macros/Hardware/AVR/AVRUARTReceive.sci30
-rw-r--r--macros/Hardware/AVR/AVRUARTSetup.binbin3480 -> 8212 bytes
-rw-r--r--macros/Hardware/AVR/AVRUARTSetup.sci70
-rw-r--r--macros/Hardware/AVR/AVRUARTTransmit.binbin0 -> 2756 bytes
-rw-r--r--macros/Hardware/AVR/AVRUARTTransmit.sci33
-rw-r--r--macros/Hardware/AVR/GetAVRSupportFunctions.binbin1888 -> 2460 bytes
-rw-r--r--macros/Hardware/AVR/GetAVRSupportFunctions.sci26
-rw-r--r--macros/Hardware/AVR/GetPeripheral.sci10
-rw-r--r--macros/Hardware/AVR/InsertPeripheralInList.sci10
-rw-r--r--macros/Hardware/AVR/IsAVRSupportFunction.sci10
-rw-r--r--macros/Hardware/AVR/libbin956 -> 1012 bytes
-rw-r--r--macros/Hardware/AVR/names12
-rw-r--r--macros/Hardware/RasberryPi/libbin1152 -> 1312 bytes
48 files changed, 745 insertions, 149 deletions
diff --git a/macros/Hardware/AVR/AVRADCSetup.bin b/macros/Hardware/AVR/AVRADCSetup.bin
index 44e3d79..25352e5 100644
--- a/macros/Hardware/AVR/AVRADCSetup.bin
+++ b/macros/Hardware/AVR/AVRADCSetup.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRADCSetup.sci b/macros/Hardware/AVR/AVRADCSetup.sci
index ce9117d..264062b 100644
--- a/macros/Hardware/AVR/AVRADCSetup.sci
+++ b/macros/Hardware/AVR/AVRADCSetup.sci
@@ -1,32 +1,47 @@
-function AVRADCSetup(prescalar,adc_ref)
+// 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 AVRADCSetup(prescaler,adc_ref)
// Function to initialise ADC of AVR
//
// Calling Sequence
-// AVRADCSetup(uint8 prescalar, uint8 adc_ref)
+// AVRADCSetup(uint8 prescaler, uint8 adc_ref)
//
// Parameters
-// prescalar: prescalar to be used for generating ADC clock (0-7)
+// prescaler: prescaler to be used for generating ADC clock (0-7)
// adc_ref : reference voltage to be used for ADC conversion
// 0 -> Voltage on VREF pin
// 1 -> Voltage on AVCC pin
// 2 -> Internal 2.56 reference voltage
//
// Description
-// This function initialises ADc of AVR with given parameters. 'prescalar' is
+// This function initialises ADc of AVR with given parameters. 'prescaler' is
// needed for deciding ADC clock. ADC clock should be between 50KHz and 200KHz
-// and it given as (MCU clock/2^prescalar). Select appropriate prescalar depending
+// and it given as (MCU clock/2^prescaler). Select appropriate prescaler depending
// on MCU clock. 'adc_ref' selects one of the available reference voltage sources
// available
// Examples
// AVRADCSetup(128,0)
-
// See also
// AVRReadADC
//
// Authors
-// Siddhesh Wani
+// Siddhesh Wani Ashish Kamble
//
-
// This is curretly dummy function. It provides no functionality but is required
// for providing support for generating C code for AVR.
+
+if(prescaler>=8)
+disp("Error : Invalid input argument ''prescaler'' in AVRADCSetup function.");
+end
+if(adc_ref>=3) then
+disp("Error : Invalid input argument ''adc_ref'' in AVRADCSetup function.");
+end
endfunction
diff --git a/macros/Hardware/AVR/AVRDigitalIn.bin b/macros/Hardware/AVR/AVRDigitalIn.bin
index 7ff2c98..e88f6a6 100644
--- a/macros/Hardware/AVR/AVRDigitalIn.bin
+++ b/macros/Hardware/AVR/AVRDigitalIn.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRDigitalIn.sci b/macros/Hardware/AVR/AVRDigitalIn.sci
index ef57564..54eb327 100644
--- a/macros/Hardware/AVR/AVRDigitalIn.sci
+++ b/macros/Hardware/AVR/AVRDigitalIn.sci
@@ -1,3 +1,14 @@
+// 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 state = AVRDigitalIn(port,pin)
// Function to get state (high\low) of a digital input pin on AVR
//
@@ -24,9 +35,16 @@ function state = AVRDigitalIn(port,pin)
//
//
// Authors
-// Siddhesh Wani
+// Siddhesh Wani Ashish Kamble
//
-
// This is curretly dummy function. It provides no functionality but is required
// for providing support for generating C code for AVR.
+
+if((port==0)|(port>=5)) then
+disp("Error : Inavalid input argument ''port'' in AVRDigitalIn function.");
+end
+if(pin>=8) then
+disp("Error : Inavalid input argument ''pin'' in AVRDigitalIn function.");
+end
+state = 0;
endfunction
diff --git a/macros/Hardware/AVR/AVRDigitalOut.bin b/macros/Hardware/AVR/AVRDigitalOut.bin
index 7a09b0d..d0dcb55 100644
--- a/macros/Hardware/AVR/AVRDigitalOut.bin
+++ b/macros/Hardware/AVR/AVRDigitalOut.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRDigitalOut.sci b/macros/Hardware/AVR/AVRDigitalOut.sci
index f17c8a0..a86a5aa 100644
--- a/macros/Hardware/AVR/AVRDigitalOut.sci
+++ b/macros/Hardware/AVR/AVRDigitalOut.sci
@@ -1,3 +1,13 @@
+// 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 AVRDigitalOut(port,pin,state)
// Function to change state (high\low) of a digital output pin on AVR
//
@@ -24,9 +34,18 @@ function AVRDigitalOut(port,pin,state)
//
//
// Authors
-// Siddhesh Wani
+// Siddhesh Wani Ashish Kamble
//
-
// This is curretly dummy function. It provides no functionality but is required
// for providing support for generating C code for AVR.
+
+if((port==0)|(port>=8)) then
+disp("Error : Inavalid input argument ''port'' in AVRDigitalOut function.");
+end
+if(pin>=8) then
+disp("Error : Invalid input argument ''pin'' in AVRDigitalOut function.");
+end
+if(state>=2) then
+disp("Error : Invalid input argument ''state'' in AVRDigitalOut function.");
+end
endfunction
diff --git a/macros/Hardware/AVR/AVRDigitalPortSetup.bin b/macros/Hardware/AVR/AVRDigitalPortSetup.bin
new file mode 100644
index 0000000..dacf6a3
--- /dev/null
+++ b/macros/Hardware/AVR/AVRDigitalPortSetup.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRDigitalPortSetup.sci b/macros/Hardware/AVR/AVRDigitalPortSetup.sci
new file mode 100644
index 0000000..5f0b967
--- /dev/null
+++ b/macros/Hardware/AVR/AVRDigitalPortSetup.sci
@@ -0,0 +1,47 @@
+// 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 AVRDigitalPortSetup(port,direction)
+// Function to decide direction of port on AVR
+//
+// Calling Sequence
+// AVRDigitalPortSetup(port,direction)
+//
+// Parameters
+// port : port of microcontroller to be used(1 for PORTA, 2 for PORTB,...)
+// direction : direction to be set for pin (0 for INPUT, 1 for OUTPUT)
+//
+// Description
+// Each AVR microcontroller has pins which can be configured as digital
+// outputs/inputs. These are normally divided among some 'ports' (group of pins).
+// User has to select one of these port and which pin of that port to be
+// used as digital output/input. Also, desired direction must be specified as
+// 'INPUT' or 'OUTPUT'.
+//
+// Examples
+// AVRDigitalPortSetup(1,0); //This function will make PortA as input port
+//
+// See also
+// AVRDigitalIn AVRDigitalOut
+//
+//
+// Authors
+// Siddhesh Wani Ashish Kamble
+//
+// This is curretly dummy function. It provides no functionality but is required
+// for providing support for generating C code for AVR.
+
+if((port==0)|(port>=5)) then
+disp("Error : Invalid input argument ''port'' in AVRDigitalPortSetup function.");
+end
+if(direction>=2) then
+disp("Error : Invalid input argument ''direction'' in AVRDigitalPortSetup function.");
+end
+endfunction
diff --git a/macros/Hardware/AVR/AVRDigitalSetup.bin b/macros/Hardware/AVR/AVRDigitalSetup.bin
index 98a592e..60b0749 100644
--- a/macros/Hardware/AVR/AVRDigitalSetup.bin
+++ b/macros/Hardware/AVR/AVRDigitalSetup.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRDigitalSetup.sci b/macros/Hardware/AVR/AVRDigitalSetup.sci
index 3de56c2..e707d4f 100644
--- a/macros/Hardware/AVR/AVRDigitalSetup.sci
+++ b/macros/Hardware/AVR/AVRDigitalSetup.sci
@@ -1,9 +1,19 @@
+// 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 AVRDigitalSetup(port,pin,direction)
// Function to decide direction of a digital pin on AVR
//
// Calling Sequence
// AVRDigitalSetup(port,pin,direction)
-//
+//
// Parameters
// port : port of microcontroller to be used
// pin : pin of port (mentioned above) to be used
@@ -24,9 +34,18 @@ function AVRDigitalSetup(port,pin,direction)
//
//
// Authors
-// Siddhesh Wani
+// Siddhesh Wani Ashish Kamble
//
-
// This is curretly dummy function. It provides no functionality but is required
// for providing support for generating C code for AVR.
+
+if((port==0)|(port>=5)) then
+disp("Error : Invalid input argument ''port'' in AVRDigitalSetup function.");
+end
+if(pin>=8) then
+disp("Error : Invalid input argument ''pin'' in AVRDigitalSetup function.");
+end
+if(direction>=2) then
+disp("Error : Invalid input argument ''direction'' in AVRDigitalSetup function.");
+end
endfunction
diff --git a/macros/Hardware/AVR/AVRGetTimerValue.bin b/macros/Hardware/AVR/AVRGetTimerValue.bin
index 26b4b47..82f8ed4 100644
--- a/macros/Hardware/AVR/AVRGetTimerValue.bin
+++ b/macros/Hardware/AVR/AVRGetTimerValue.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRGetTimerValue.sci b/macros/Hardware/AVR/AVRGetTimerValue.sci
index ab0146a..afb47ac 100644
--- a/macros/Hardware/AVR/AVRGetTimerValue.sci
+++ b/macros/Hardware/AVR/AVRGetTimerValue.sci
@@ -1,31 +1,40 @@
-function counts = AVRGetTimerValue(timer)
-// Function to set the prescalar for timer.
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
//
-// Calling Sequence
-// AVRgetTimerValue(timer, prescalar)
+// 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 count = AVRGetTimerValue(timer)
+// Function to get timer count
//
// Parameters
-// timer: timer to be set up (0,1,2)
-// prescalar: prescalar to be used for generating PWM waveform (0-7)
-// ***Refer datasheet for more description about timer
+// timer : timer whose current count is to be returned
+// 0 for timer0
+// 1 for timer1
+// 2 for timer2
//
// Description
-// This function sets prescalr for timers. 'timer' decides which of the
-// three (0,1,2) timers available to be used. The 'prescalar' is needed for
-// deciding timer clock. Select appropriate prescalar depending on MCU clock
-// and requirement.
-//
+// This function returns the count value of a desired timer.By knowing the count value
+// certain interrupt action can be taken.
//
// Examples
-// AVRTimerSetup(0,1) //Timer 0 with no scaling
+// AVRGetTimerValue(0); //returns present count of the TCNT0 counter
//
// See also
-// AVRGetTimerValue
+// AVRTimerSetup
//
// Authors
-// Siddhesh Wani
+// Ashish Kamble
//
-
// This is curretly dummy function. It provides no functionality but is required
// for providing support for generating C code for AVR.
+
+if(timer>=3) then
+disp("Error : Invalid input argument ''timer'' in AVRGetTimerValue function.");
+end
+count = 0;
endfunction
diff --git a/macros/Hardware/AVR/AVRPWM0SetDuty.bin b/macros/Hardware/AVR/AVRPWM0SetDuty.bin
new file mode 100644
index 0000000..bc15dd3
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM0SetDuty.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRPWM0SetDuty.sci b/macros/Hardware/AVR/AVRPWM0SetDuty.sci
new file mode 100644
index 0000000..604d2f4
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM0SetDuty.sci
@@ -0,0 +1,35 @@
+// 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 AVRPWM0SetDuty(duty)
+//Function to Set Duty cycle of PWM Output generated by Timer0 at OC0 pin.
+//Parameters
+// duty : It holds an integer value from 0 to 100 which sets the percentage
+// of time for which signal is active.
+//Description
+// Each Micro controller has PWM output pins which can generate varying voltage
+// from 0V-5V.In this function by varying the duty cycle, varying voltage can be
+// produced.
+//Example
+// AVRPWM0SetDuty(50); //Produces 2.5V at OC0 pin
+// AVRPWM0SetDuty(0); //Produces 0V at OC0 pin
+//See also
+// AVRPWM0Setup
+//
+//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(duty>100) then
+disp("Error : Invalid input argument ''duty'' in AVRPWM0SetDuty function.");
+end
+endfunction
diff --git a/macros/Hardware/AVR/AVRPWM0Setup.bin b/macros/Hardware/AVR/AVRPWM0Setup.bin
new file mode 100644
index 0000000..0886704
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM0Setup.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRPWM0Setup.sci b/macros/Hardware/AVR/AVRPWM0Setup.sci
new file mode 100644
index 0000000..39861c8
--- /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
diff --git a/macros/Hardware/AVR/AVRPWM1SetDuty.bin b/macros/Hardware/AVR/AVRPWM1SetDuty.bin
new file mode 100644
index 0000000..36567db
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM1SetDuty.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRPWM1SetDuty.sci b/macros/Hardware/AVR/AVRPWM1SetDuty.sci
new file mode 100644
index 0000000..60dc0a9
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM1SetDuty.sci
@@ -0,0 +1,52 @@
+// 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 AVRPWM1SetDuty(output_pin,duty,Top_Value)
+//Function to Set Duty cycle of PWM Output generated by Timer1 at OC1A or OC1B pin.
+//Parameters
+// ouput_pin:
+// 0 for selecting OC1A as output pin
+// 1 for selecting OC1B as output pin
+//
+// duty: It holds an integer value from 0 to 100 which sets the percentage
+// of time for which signal is active.
+//
+// Top_Value: It holds an integer value from 0 to 65535.This value sets the Top
+// value of the counter TCNT1 i.e ICR.(for more info refer datasheet)
+//
+//Description
+// Each Micro controller has PWM output pins which can generate varying voltage
+// from 0V-5V.This function Sets the duty cycle of output PWM signal.Also this function
+// decides the Top Vale of TCNT1 and the output pin to output PWM signal.
+//
+//Example
+// AVRPWM1SetDuty(0,50,40000); //This function will produce PWM signal of 50% duty
+// cycle on OC1A pin and TCNT1 will reset at 40000 instead
+// at 65535.
+//
+//See also
+// AVRPWM1Setup
+//
+//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(output_pin>=2) then
+disp("Error : Invalid input argument ''output_pin'' in AVRPWM1SetDuty function.");
+end
+if(duty>100) then
+disp("Error : Invalid input argument ''duty'' in AVRPWM1SetDuty function.");
+end
+if(Top_Value>65535) then
+disp("Error : Invalid input argument ''Top_Value'' in AVRPWM1Setduty function.");
+end
+endfunction
diff --git a/macros/Hardware/AVR/AVRPWM1Setup.bin b/macros/Hardware/AVR/AVRPWM1Setup.bin
new file mode 100644
index 0000000..d0b17c2
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM1Setup.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRPWM1Setup.sci b/macros/Hardware/AVR/AVRPWM1Setup.sci
new file mode 100644
index 0000000..51aa25b
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM1Setup.sci
@@ -0,0 +1,79 @@
+// 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 AVRPWM1Setup(waveform_mode,output_mode,output_pin)
+//Function to Setup OC1A or OC1B 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 OC1A or OC1B pin to produces 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 OC1A or OC1B on compare match when up-counting. Set OC1A or OC1B
+// on compare match when down-counting.
+// 1 for Set OC1A or OC1B on compare match when up-counting. Clear OC1A or OC1B
+// on compare match when down-counting.
+//
+// For Fast PWM Mode:
+// 0 for non-inverted output i.e Clear OC1A or OC1B on compare match, set OC1A
+// OC1B at BOTTOM.
+// 1 for inverted output i.e Set OC1A or OC1B on compare match, clear OC1A or OC1B
+// at BOTTOM.
+//
+// For CTC Mode:
+// 0 to Clear OC1A or OC1B on compare match
+// 1 to Set OC1A or OC1B on compare match
+// 2 to toggle OC1A or OC1B on compare match
+//
+// output_pin:
+// 0 for selecting OC1A as output pin
+// 1 for selecting OC1B as output pin
+//
+//Example
+// AVRPWM1Setup(2,0,0); //This function will select CTC mode and will clear OC1A or OC1B
+// on compare match.Also as defined the output will be produced at
+// 0C1A pin.
+//See also
+// AVRPWM1SetDuty
+//
+//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 AVRPWM1Setup function.");
+end
+if(waveform_mode==0|waveform_mode==1) then
+{
+ //if((type(output_mode)~=8)|(output_mode>=2)) then
+ //disp("Error : Invalid input argument ''output_mode'' in AVRPWM1Setup function.");
+ //end
+}
+end
+if(waveform_mode==2) then
+{
+ if((type(output_mode)~=8)|(output_mode>=3)) then
+ disp("Error : Invalid input argument ''output_mode'' in AVRPWM1Setup function.");
+ end
+}
+end
+if(output_pin>=2) then
+disp("Error : Invalid input argument ''output_pin'' in AVRPWM1Setup function.");
+end
+endfunction
diff --git a/macros/Hardware/AVR/AVRPWM2SetDuty.bin b/macros/Hardware/AVR/AVRPWM2SetDuty.bin
new file mode 100644
index 0000000..47fb532
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM2SetDuty.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRPWM2SetDuty.sci b/macros/Hardware/AVR/AVRPWM2SetDuty.sci
new file mode 100644
index 0000000..929c1a0
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM2SetDuty.sci
@@ -0,0 +1,38 @@
+// 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 AVRPWM2SetDuty(duty)
+//Function to Set Duty cycle of PWM Output generated by Timer2 at OC2 pin.
+//Description
+// Each Micro controller has PWM output pins which can generate varying voltage
+// from 0V-5V.In this function by varying the duty cycle, varying voltage can be
+// produced.
+//
+//Parameters
+// duty : It holds an integer value from 0 to 100 which sets the percentage
+// of time for which signal is active.
+//
+//Example
+// AVRPWM2SetDuty(50); //Produces 2.5V at OC2 pin
+// AVRPWM2SetDuty(0); //Produces 0V at OC2 pin
+//
+//See also
+// AVRPWM2Setup
+//
+//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(duty>100) then
+disp("Error : Invalid input argument ''duty'' in AVRPWM2SetDuty function.");
+end
+endfunction
diff --git a/macros/Hardware/AVR/AVRPWM2Setup.bin b/macros/Hardware/AVR/AVRPWM2Setup.bin
new file mode 100644
index 0000000..66996c0
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM2Setup.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRPWM2Setup.sci b/macros/Hardware/AVR/AVRPWM2Setup.sci
new file mode 100644
index 0000000..d4bc74a
--- /dev/null
+++ b/macros/Hardware/AVR/AVRPWM2Setup.sci
@@ -0,0 +1,69 @@
+// 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 AVRPWM2Setup(waveform_mode,output_mode)
+//Function to Setup OC2 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 OC2 pin to produces 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 OC2 on compare match when up-counting. Set OC2 on compare
+// match when down-counting.
+// 1 for Set OC2 on compare match when up-counting. Clear OC2 on compare
+// match when down-counting.
+//
+// For Fast PWM Mode:
+// 0 for non-inverted output i.e Clear OC2 on compare match, set OC2 at BOTTOM.
+// 1 for inverted output i.e Set OC2 on compare match, clear OC2 at BOTTOM.
+//
+// For CTC Mode:
+// 0 to Clear OC2 on compare match
+// 1 to Set OC2 on compare match
+// 2 to toggle OC2 on compare match
+//
+//Example
+// AVRPWM2Setup(2,0); //This function will select CTC waveform mode and will clear OC2 on
+// compare match
+//See also
+// AVRPWM2SetDuty
+//
+//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 AVRPWM2Setup function.");
+end
+if((waveform_mode==0)|(waveform_mode==1)) then
+{
+ //if((type(output_mode)~=8)|(output_mode>=2)) then
+ //disp("Error : Invalid input argument ''output_mode'' in AVRPWM2Setup function.");
+ //end
+}
+end
+if(waveform_mode==2) then
+{
+ if((type(output_mode)~=8)|(output_mode>=3)) then
+ disp("Error : Invalid input argument ''output_mode'' in AVRPWM2Setup function.");
+ end
+}
+end
+
+endfunction
diff --git a/macros/Hardware/AVR/AVRPWMSetDuty.bin b/macros/Hardware/AVR/AVRPWMSetDuty.bin
deleted file mode 100644
index f3c9e3e..0000000
--- a/macros/Hardware/AVR/AVRPWMSetDuty.bin
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/AVR/AVRPWMSetDuty.sci b/macros/Hardware/AVR/AVRPWMSetDuty.sci
deleted file mode 100644
index 0042540..0000000
--- a/macros/Hardware/AVR/AVRPWMSetDuty.sci
+++ /dev/null
@@ -1,24 +0,0 @@
-function AVRPWMSetDuty(timer, duty)
-// Function to set duty for PWM of AVR
-//
-// Calling Sequence
-// AVRPWMSetDuty(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
-// AVRPWMSetDuty(0,10) //Sets 10% duty for timer 0 output.
-//
-// Authors
-// Siddhesh Wani
-//
-//
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for AVR.
-endfunction
diff --git a/macros/Hardware/AVR/AVRPWMSetup.bin b/macros/Hardware/AVR/AVRPWMSetup.bin
deleted file mode 100644
index 971e43e..0000000
--- a/macros/Hardware/AVR/AVRPWMSetup.bin
+++ /dev/null
Binary files differ
diff --git a/macros/Hardware/AVR/AVRPWMSetup.sci b/macros/Hardware/AVR/AVRPWMSetup.sci
deleted file mode 100644
index 1bee050..0000000
--- a/macros/Hardware/AVR/AVRPWMSetup.sci
+++ /dev/null
@@ -1,39 +0,0 @@
-function AVRPWMSetup(timer, prescalar, waveform_mode, output_mode)
-// Function to initialise PWM of AVR
-//
-// Calling Sequence
-// AVRPWMSetup(timer, prescalar, waveform_mode, output_mode)
-//
-// Parameters
-// timer: timer to be used for PWM generation (0,1,2)
-// prescalar: prescalar to be used for generating PWM waveform (0-7)
-// waveform_mode: decides type of waveform generation
-// 0 -> Normal mode
-// 1 -> Phase correct mode
-// 2 -> CTC mode
-// 3 -> Fase PWM mode
-// output_mode: decides the compare output mode. (0-3)
-// behaviour of the output is different for different inputs
-// depending upon 'waveform_mode' chosen.
-// ***Refer datasheet for more description about above modes
-//
-// Description
-// This function initialises PWM of AVR with given parameters. 'timer'
-// decides which of the three (0,1,2) timers available to be used. The
-// 'prescalar' is needed for deciding PWM clock. Select appropriate prescalar
-// depending on MCU clock. Choose required pwmmode using 'waveform_generation'
-// and 'output_mode'. Please refer datasheet for more description of 'wafefom_mode'
-// and 'output mode'.
-// Examples
-// AVRPWMSetup(0,1,2,2)
-//
-// See also
-// AVRPMWSetDuty
-//
-// Authors
-// Siddhesh Wani
-//
-
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for AVR.
-endfunction
diff --git a/macros/Hardware/AVR/AVRReadADC.bin b/macros/Hardware/AVR/AVRReadADC.bin
index c106708..3735097 100644
--- a/macros/Hardware/AVR/AVRReadADC.bin
+++ b/macros/Hardware/AVR/AVRReadADC.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRReadADC.sci b/macros/Hardware/AVR/AVRReadADC.sci
index f9dfdac..7fd3e67 100644
--- a/macros/Hardware/AVR/AVRReadADC.sci
+++ b/macros/Hardware/AVR/AVRReadADC.sci
@@ -1,4 +1,14 @@
-function AVRReadADC(channel)
+// 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 adc_result = AVRReadADC(channel)
// Function to get voltage on analog pin on AVR
//
// Calling Sequence
@@ -22,10 +32,13 @@ function AVRReadADC(channel)
// adc_result = u8AVRReadADC(0) //Read ADC0
//
// Authors
-// Siddhesh Wani
+// Siddhesh Wani Ashish Kamble
//
-
-
// This is curretly dummy function. It provides no functionality but is required
// for providing support for generating C code for AVR.
+
+if(channel>=8) then
+disp("Error : Inavlid input argument ''channel'' in AVRReadADC function.");
+end
+adc_result = 0; //adc_result has been initialised to avoid runtime error.
endfunction
diff --git a/macros/Hardware/AVR/AVRSleep.bin b/macros/Hardware/AVR/AVRSleep.bin
new file mode 100644
index 0000000..e4b10d8
--- /dev/null
+++ b/macros/Hardware/AVR/AVRSleep.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRSleep.sci b/macros/Hardware/AVR/AVRSleep.sci
new file mode 100644
index 0000000..a1b6add
--- /dev/null
+++ b/macros/Hardware/AVR/AVRSleep.sci
@@ -0,0 +1,4 @@
+function AVRSleep(delay)
+
+
+endfunction
diff --git a/macros/Hardware/AVR/AVRTimerSetup.bin b/macros/Hardware/AVR/AVRTimerSetup.bin
index 4a49b86..d7d8c42 100644
--- a/macros/Hardware/AVR/AVRTimerSetup.bin
+++ b/macros/Hardware/AVR/AVRTimerSetup.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRTimerSetup.sci b/macros/Hardware/AVR/AVRTimerSetup.sci
index 1529c34..7c5dd1d 100644
--- a/macros/Hardware/AVR/AVRTimerSetup.sci
+++ b/macros/Hardware/AVR/AVRTimerSetup.sci
@@ -1,31 +1,56 @@
-function AVRTimerSetup(timer, prescalar)
-// Function to set the prescalar for timer.
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
//
-// Calling Sequence
-// AVRTimerSetup(timer, prescalar)
-//
-// Parameters
-// timer: timer to be set up (0,1,2)
-// prescalar: prescalar to be used for timer (0-7)
-// ***Refer datasheet for more description about timer
-//
-// Description
-// This function sets prescalr for timers. 'timer' decides which of the
-// three (0,1,2) timers available to be used. The 'prescalar' is needed for
-// deciding timer clock. Select appropriate prescalar depending on MCU clock
-// and requirement.
-//
-//
-// Examples
-// AVRTimerSetup(0,1) //Timer 0 with no scaling
+// 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 AVRTimerSetup(timer,prescaler,clock_source)
+//Function to setup Timers in ATmega16
+//Descrpition:
+// This function tells the micro controller which clock source you will be using.
+// The timer value and prescaler value passed in this function setup the timer as per
+// your requirement.
//
-// See also
-// AVRGetTimerValue
+//Parameters:
+// timer : It is an integer value.
+// 0 to setup timer0
+// 1 to setup timer1
+// 2 to setup timer2
+// prescaler : It is an integer value.
+// 1 for no prescaling i.e clock will run at max 16Hz frequency
+// 8 for prescaling clock by 8 i.e new clock frequency will be (clk/8)
+// 64 for prescaling clock by 64 i.e new clock frequency will be (clk/64)
+// 256 for prescaling clock by 256 i.e new clock frequency will be (clk/256)
+// 1024 for prescaling clock by 1024 i.e new clock frequency will be (clk/1024)
+// clock_source : It is an integer value.
+// 0 if you are using internal clock source
+// 1 if you are using external clock source
+//Example
+// AVRTimerSetup(0,64,0); //This function will select timer0 with timer running as per
+// internal clock source and prescaled by 64.
+//
+//See also
+// AVRGetTimerValues
//
-// Authors
-// Siddhesh Wani
+//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(timer>=3) then
+disp("Error : Invalid input argument ''timer'' in AVRTimerSetup function.");
+end
+
+if(~((prescaler==1)|(prescaler==8)|(prescaler==64)|(prescaler==256)|(prescaler==1024))) then
+disp("Error : Invalid input argument ''prescaler'' in AVRTimerSetup function.");
+end
-// This is curretly dummy function. It provides no functionality but is required
-// for providing support for generating C code for AVR.
+if(clock_source>=2) then
+disp("Error : Invalid input argument ''clock_source'' in AVRTimerSetup function.");
+end
endfunction
diff --git a/macros/Hardware/AVR/AVRUARTReceive.bin b/macros/Hardware/AVR/AVRUARTReceive.bin
new file mode 100644
index 0000000..013036e
--- /dev/null
+++ b/macros/Hardware/AVR/AVRUARTReceive.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRUARTReceive.sci b/macros/Hardware/AVR/AVRUARTReceive.sci
new file mode 100644
index 0000000..790894f
--- /dev/null
+++ b/macros/Hardware/AVR/AVRUARTReceive.sci
@@ -0,0 +1,30 @@
+// 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 received = AVRUARTReceive()
+// Function to Receive Char value send to ATmega16 using UART or USART.
+// Description
+// This function Receives Char as 8 bit value.This value is stored in UDR at receiving
+// end.
+//
+//Examples
+// state = AVRUARTReceive(); //This function will Receive char and return the entire value
+//
+//See also
+// AVRUARTSetup
+// AVRUARTTransmit
+//
+// Authors
+// Ashish Kamble
+//
+// This is curretly dummy function. It provides no functionality but is required
+// for providing support for generating C code for AVR.
+received = 0; // received has been initialised to avoid runtime error.
+endfunction
diff --git a/macros/Hardware/AVR/AVRUARTSetup.bin b/macros/Hardware/AVR/AVRUARTSetup.bin
index 4a49b86..82ec291 100644
--- a/macros/Hardware/AVR/AVRUARTSetup.bin
+++ b/macros/Hardware/AVR/AVRUARTSetup.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRUARTSetup.sci b/macros/Hardware/AVR/AVRUARTSetup.sci
index 1529c34..32e5db8 100644
--- a/macros/Hardware/AVR/AVRUARTSetup.sci
+++ b/macros/Hardware/AVR/AVRUARTSetup.sci
@@ -1,31 +1,61 @@
-function AVRTimerSetup(timer, prescalar)
-// Function to set the prescalar for timer.
+// Copyright (C) 2017 - IIT Bombay - FOSSEE
//
-// Calling Sequence
-// AVRTimerSetup(timer, prescalar)
-//
-// Parameters
-// timer: timer to be set up (0,1,2)
-// prescalar: prescalar to be used for timer (0-7)
-// ***Refer datasheet for more description about timer
-//
+// 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 AVRUARTSetup(mode, baudrate, stopbits, parity)
+// Function to Setup Serial Communication i.e UART or USART in ATmega16.
// Description
-// This function sets prescalr for timers. 'timer' decides which of the
-// three (0,1,2) timers available to be used. The 'prescalar' is needed for
-// deciding timer clock. Select appropriate prescalar depending on MCU clock
-// and requirement.
-//
+// This function Setup the UART or USART for Serial Communicaion between ATmega16
+// and different micro controllers or between ATmega16 and Computer.
+//
+// Parameters
+// mode :
+// 0 for Asynchronous Normal mode
+// 1 for Asynchronous Double Speed mode
+// 2 for Synchronous mode
+//
+// baudrate : Enter one of the following available baudrates
+// 2400 , 4800 , 9600 , 14400 , 19200 , 28800 , 38400 , 57600 ,
+// 768000 , 115200 , 230400 , 250000 , 1000000 .
//
-// Examples
-// AVRTimerSetup(0,1) //Timer 0 with no scaling
+// stopbits :
+// 0 for one stopbit
+// 1 for two stopbits
//
+// parity :
+// 0 for parity disabled
+// 1 for even parity
+// 2 for odd parity
+//
+//Examples
+// AVRUARTSetup(0,9600,0,0); //This function will enable UART Communication for ATmega16
+// with 9600 as baudrate,one stop bit and parity disabled
// See also
-// AVRGetTimerValue
+// AVRUARTTransmit
+// AVRUARTReceive
//
// Authors
-// Siddhesh Wani
+// Ashish Kamble
//
-
// This is curretly dummy function. It provides no functionality but is required
// for providing support for generating C code for AVR.
+if(mode>=3) then
+disp("Error : Invalid input argument ''mode'' in AVRUARTSetup function.");
+end
+
+if((baudrate <> 2400)&(baudrate <> 4800)&(baudrate <> 9600)&(baudrate <> 14400)&(baudrate <> 28800)&(baudrate <> 38400)&(baudrate <> 57600)&(baudrate <> 768000)&(baudrate <> 115200)&(baudrate <> 230400)&(baudrate <> 250000)& (baudrate <> 1000000)) then
+disp("Error : Invalid input argument ''baudrate'' in AVRUARTSetup function.");
+end
+if(stopbits>=2) then
+disp("Error : Invalid input argument ''stopbits'' in AVRUARTSetup function.");
+end
+if(parity>=3) then
+disp("Error : Invalid input argument ''parity'' in AVRUARTSetup function.");
+end
endfunction
diff --git a/macros/Hardware/AVR/AVRUARTTransmit.bin b/macros/Hardware/AVR/AVRUARTTransmit.bin
new file mode 100644
index 0000000..9e53d9a
--- /dev/null
+++ b/macros/Hardware/AVR/AVRUARTTransmit.bin
Binary files differ
diff --git a/macros/Hardware/AVR/AVRUARTTransmit.sci b/macros/Hardware/AVR/AVRUARTTransmit.sci
new file mode 100644
index 0000000..eb35849
--- /dev/null
+++ b/macros/Hardware/AVR/AVRUARTTransmit.sci
@@ -0,0 +1,33 @@
+// 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 AVRUARTTransmit(data)
+// Function to Transmit data using UART or USART.
+// Description
+// This function Tranmits data over UART or USART.The data to be transmitted can
+// be a Char , String , Unsigned Int, Signed Int.
+//
+// Parameter
+// data :
+// The data to be transmitted can be a Char,String,Unsigned Int,Signed Int.
+//
+//Examples
+// AVRUARTTransmit("This is example"); //This function will transmit the entered string.
+//
+//See also
+// AVRUARTSetup
+// AVRUARTReceive
+//
+// Authors
+// Ashish Kamble
+//
+// This is curretly dummy function. It provides no functionality but is required
+// for providing support for generating C code for AVR.
+endfunction
diff --git a/macros/Hardware/AVR/GetAVRSupportFunctions.bin b/macros/Hardware/AVR/GetAVRSupportFunctions.bin
index 0aa7587..ba84783 100644
--- a/macros/Hardware/AVR/GetAVRSupportFunctions.bin
+++ b/macros/Hardware/AVR/GetAVRSupportFunctions.bin
Binary files differ
diff --git a/macros/Hardware/AVR/GetAVRSupportFunctions.sci b/macros/Hardware/AVR/GetAVRSupportFunctions.sci
index cce49f9..99c6242 100644
--- a/macros/Hardware/AVR/GetAVRSupportFunctions.sci
+++ b/macros/Hardware/AVR/GetAVRSupportFunctions.sci
@@ -1,3 +1,13 @@
+// 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 AVRSupportFunctions = GetAVRSupportFunctions()
// -----------------------------------------------------------------
// Get list of AVR peripherals supported
@@ -8,7 +18,7 @@ function AVRSupportFunctions = GetAVRSupportFunctions()
// Output data:
// None
//
-// Author: Siddhesh Wani
+// Author: Siddhesh Wani Ashish Kamble
// -----------------------------------------------------------------
AVRSupportFunctions = [
@@ -16,10 +26,18 @@ AVRSupportFunctions = [
"AVRDigitalIn"
"AVRDigitalOut"
"AVRDigitalSetup"
+ "AVRDigitalPortSetup"
+ "AVRTimerSetup"
"AVRGetTimerValue"
- "AVRPWMSetDuty"
- "AVRPWMSetup"
+ "AVRPWM0Setup"
+ "AVRPWM0SetDuty"
+ "AVRPWM1Setup"
+ "AVRPWM1SetDuty"
+ "AVRPWM2Setup"
+ "AVRPWM2SetDuty"
"AVRReadADC"
- "AVRTimerSetup"];
+ "AVRSleep"
+ "AVRUARTSetup"
+ ];
endfunction
diff --git a/macros/Hardware/AVR/GetPeripheral.sci b/macros/Hardware/AVR/GetPeripheral.sci
index 73e9f19..ac909de 100644
--- a/macros/Hardware/AVR/GetPeripheral.sci
+++ b/macros/Hardware/AVR/GetPeripheral.sci
@@ -1,3 +1,13 @@
+// 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 Peripheral = GetPeripheral(FunName,InArg)
// -----------------------------------------------------------------
// Get an acronym for peripheral being used to be inserted in list of
diff --git a/macros/Hardware/AVR/InsertPeripheralInList.sci b/macros/Hardware/AVR/InsertPeripheralInList.sci
index bafc593..198ea1d 100644
--- a/macros/Hardware/AVR/InsertPeripheralInList.sci
+++ b/macros/Hardware/AVR/InsertPeripheralInList.sci
@@ -1,3 +1,13 @@
+// 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 InsertPeripheralInList(Peripheral,PeripheralListFile)
// -----------------------------------------------------------------
// Insert input peripheral in peripherals' list
diff --git a/macros/Hardware/AVR/IsAVRSupportFunction.sci b/macros/Hardware/AVR/IsAVRSupportFunction.sci
index a4cbbc8..94f4af7 100644
--- a/macros/Hardware/AVR/IsAVRSupportFunction.sci
+++ b/macros/Hardware/AVR/IsAVRSupportFunction.sci
@@ -1,3 +1,13 @@
+// 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 Output = IsAVRSupportFunction(FunName)
// -----------------------------------------------------------------
// Check whether input function name is an AVR support function or not.
diff --git a/macros/Hardware/AVR/lib b/macros/Hardware/AVR/lib
index 64d346a..f07c4e6 100644
--- a/macros/Hardware/AVR/lib
+++ b/macros/Hardware/AVR/lib
Binary files differ
diff --git a/macros/Hardware/AVR/names b/macros/Hardware/AVR/names
index 624fee8..8fcfdb7 100644
--- a/macros/Hardware/AVR/names
+++ b/macros/Hardware/AVR/names
@@ -1,13 +1,21 @@
AVRADCSetup
AVRDigitalIn
AVRDigitalOut
+AVRDigitalPortSetup
AVRDigitalSetup
AVRGetTimerValue
-AVRPWMSetDuty
-AVRPWMSetup
+AVRPWM0SetDuty
+AVRPWM0Setup
+AVRPWM1SetDuty
+AVRPWM1Setup
+AVRPWM2SetDuty
+AVRPWM2Setup
AVRReadADC
+AVRSleep
AVRTimerSetup
+AVRUARTReceive
AVRUARTSetup
+AVRUARTTransmit
GetAVRSupportFunctions
GetPeripheral
InsertPeripheralInList
diff --git a/macros/Hardware/RasberryPi/lib b/macros/Hardware/RasberryPi/lib
index d25d944..2426bc1 100644
--- a/macros/Hardware/RasberryPi/lib
+++ b/macros/Hardware/RasberryPi/lib
Binary files differ