From 277d1edfa17bf3719d90ddbac8e31f6181e952c3 Mon Sep 17 00:00:00 2001
From: Sandeep Gupta
Date: Sun, 18 Jun 2017 23:55:40 +0530
Subject: First commit

---
 src/c/hardware/avr/uart/dAVRUARTTransmits.c      |  88 ++++++++++++++
 src/c/hardware/avr/uart/dAVRUARTTransmitu8.c     |  21 ++++
 src/c/hardware/avr/uart/gAVRUARTTransmita.c      |  26 +++++
 src/c/hardware/avr/uart/gAVRUARTTransmits.c      |  31 +++++
 src/c/hardware/avr/uart/gAVRUARTTransmitu8.c     |  24 ++++
 src/c/hardware/avr/uart/i16AVRUARTTransmita.c    |  27 +++++
 src/c/hardware/avr/uart/i16AVRUARTTransmits.c    |  73 ++++++++++++
 src/c/hardware/avr/uart/i16AVRUARTTransmitu8.c   |  31 +++++
 src/c/hardware/avr/uart/i8AVRUARTTransmita.c     |  25 ++++
 src/c/hardware/avr/uart/i8AVRUARTTransmits.c     |  26 +++++
 src/c/hardware/avr/uart/u16AVRUARTTransmita.c    |  28 +++++
 src/c/hardware/avr/uart/u16AVRUARTTransmits.c    |  87 ++++++++++++++
 src/c/hardware/avr/uart/u16AVRUARTTransmitu8.c   |  38 ++++++
 src/c/hardware/avr/uart/u8AVRUARTReceiveCharu8.c |  20 ++++
 src/c/hardware/avr/uart/u8AVRUARTSetups.c        | 143 +++++++++++++++++++++++
 src/c/hardware/avr/uart/u8AVRUARTTransmita.c     |  26 +++++
 src/c/hardware/avr/uart/u8AVRUARTTransmits.c     |  60 ++++++++++
 17 files changed, 774 insertions(+)
 create mode 100644 src/c/hardware/avr/uart/dAVRUARTTransmits.c
 create mode 100644 src/c/hardware/avr/uart/dAVRUARTTransmitu8.c
 create mode 100644 src/c/hardware/avr/uart/gAVRUARTTransmita.c
 create mode 100644 src/c/hardware/avr/uart/gAVRUARTTransmits.c
 create mode 100644 src/c/hardware/avr/uart/gAVRUARTTransmitu8.c
 create mode 100644 src/c/hardware/avr/uart/i16AVRUARTTransmita.c
 create mode 100644 src/c/hardware/avr/uart/i16AVRUARTTransmits.c
 create mode 100644 src/c/hardware/avr/uart/i16AVRUARTTransmitu8.c
 create mode 100644 src/c/hardware/avr/uart/i8AVRUARTTransmita.c
 create mode 100644 src/c/hardware/avr/uart/i8AVRUARTTransmits.c
 create mode 100644 src/c/hardware/avr/uart/u16AVRUARTTransmita.c
 create mode 100644 src/c/hardware/avr/uart/u16AVRUARTTransmits.c
 create mode 100644 src/c/hardware/avr/uart/u16AVRUARTTransmitu8.c
 create mode 100644 src/c/hardware/avr/uart/u8AVRUARTReceiveCharu8.c
 create mode 100644 src/c/hardware/avr/uart/u8AVRUARTSetups.c
 create mode 100644 src/c/hardware/avr/uart/u8AVRUARTTransmita.c
 create mode 100644 src/c/hardware/avr/uart/u8AVRUARTTransmits.c

(limited to 'src/c/hardware/avr/uart')

diff --git a/src/c/hardware/avr/uart/dAVRUARTTransmits.c b/src/c/hardware/avr/uart/dAVRUARTTransmits.c
new file mode 100644
index 00000000..ec63c4de
--- /dev/null
+++ b/src/c/hardware/avr/uart/dAVRUARTTransmits.c
@@ -0,0 +1,88 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Not Tested// 
+#include "AVRPeripheralUART.h"
+#include<math.h>
+
+
+uint8 dAVRUARTTransmits(double data)
+{ 
+ //Extract integer part
+ long int intpart = (long int)data;
+ //Extract double part
+ //double floatpart = data - (double)intpart; 
+ char* str;
+ int i = 0;
+ while(intpart)
+ {
+  str[i] = (intpart%10) + '0';
+  intpart = intpart/10;
+  i++;
+ }
+ str[i]='\0';
+ /*
+ int j = 0;
+ int k = i-1; 
+ char temp;
+ while(j<k)
+ {
+  temp = str[j];
+  str[j] = str[k];
+  str[k] = temp;
+  j++; 
+  k--;
+ }
+*/
+ 
+
+ /*
+ char* strfloat;
+ floatpart = floatpart*1000000000;
+ int l = 0;
+ while(floatpart)
+ {
+  strfloat[l] = ((unsigned int)floatpart%10) + '0';
+  floatpart = floatpart/10;
+  l++;
+ }
+ while(*strfloat!='\0')
+ {
+  str[i+1] = strfloat[l-1];
+  i++;
+  l--;
+ }
+ */
+ 
+ while(*str!='\0')
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = *str; // Put data into buffer, sends the data 
+  str++;
+ }
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (10); // Put data into buffer, sends the data 
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (13); // Put data into buffer, sends the data 
+ return 0;
+}
+ 
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/c/hardware/avr/uart/dAVRUARTTransmitu8.c b/src/c/hardware/avr/uart/dAVRUARTTransmitu8.c
new file mode 100644
index 00000000..8978cc00
--- /dev/null
+++ b/src/c/hardware/avr/uart/dAVRUARTTransmitu8.c
@@ -0,0 +1,21 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Char.
+
+
+#include "AVRPeripheralUART.h"
+
+uint8 dAVRUARTTransmitu8(uint8 data)
+{
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = data; // Put data into buffer, sends the data 
+}
diff --git a/src/c/hardware/avr/uart/gAVRUARTTransmita.c b/src/c/hardware/avr/uart/gAVRUARTTransmita.c
new file mode 100644
index 00000000..fea9319d
--- /dev/null
+++ b/src/c/hardware/avr/uart/gAVRUARTTransmita.c
@@ -0,0 +1,26 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit String.
+
+
+#include "AVRPeripheralUART.h"
+
+
+uint8 gAVRUARTTransmita(uint8 *x, int size) 
+{
+  int i = 0;
+  for (i = 0; i < size; ++i) 
+  {
+   gAVRUARTTransmits(x[i]);
+  }
+ return 0;
+}
diff --git a/src/c/hardware/avr/uart/gAVRUARTTransmits.c b/src/c/hardware/avr/uart/gAVRUARTTransmits.c
new file mode 100644
index 00000000..502f2727
--- /dev/null
+++ b/src/c/hardware/avr/uart/gAVRUARTTransmits.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit String.
+
+
+#include "AVRPeripheralUART.h"
+
+
+uint8 gAVRUARTTransmits(char* msg,int size)
+{
+ while(*msg!='\0')
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = *msg; // Put data into buffer, sends the data 
+  msg++;
+ }
+while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (10); // Put data into buffer, sends the data 
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (13); // Put data into buffer, sends the data 
+ return 0;
+}
diff --git a/src/c/hardware/avr/uart/gAVRUARTTransmitu8.c b/src/c/hardware/avr/uart/gAVRUARTTransmitu8.c
new file mode 100644
index 00000000..f3384068
--- /dev/null
+++ b/src/c/hardware/avr/uart/gAVRUARTTransmitu8.c
@@ -0,0 +1,24 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit String.
+
+
+#include "AVRPeripheralUART.h"
+
+uint8 gAVRUARTTransmitu8(uint8 *msg)
+{
+ while(*msg!='\0')
+ {
+  AVRUARTTransmitChar(*msg);
+  msg++;
+ }
+}
diff --git a/src/c/hardware/avr/uart/i16AVRUARTTransmita.c b/src/c/hardware/avr/uart/i16AVRUARTTransmita.c
new file mode 100644
index 00000000..8d0fcd47
--- /dev/null
+++ b/src/c/hardware/avr/uart/i16AVRUARTTransmita.c
@@ -0,0 +1,27 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Signed Integer Values.
+
+
+#include "AVRPeripheralUART.h"
+
+uint8 i16AVRUARTTransmita(int16 *x, int size) 
+{
+  int i = 0;
+  for (i = 0; i < size; ++i) 
+  {
+   i16AVRUARTTransmits(x[i]);
+  }
+ return 0;
+}
+
+
diff --git a/src/c/hardware/avr/uart/i16AVRUARTTransmits.c b/src/c/hardware/avr/uart/i16AVRUARTTransmits.c
new file mode 100644
index 00000000..4d907762
--- /dev/null
+++ b/src/c/hardware/avr/uart/i16AVRUARTTransmits.c
@@ -0,0 +1,73 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Signed Integer Values.
+
+
+#include "AVRPeripheralUART.h"
+
+
+uint8 i16AVRUARTTransmits(int16 data)
+{
+ uint8 temp1;
+ uint8 temp2;
+ uint8 temp3;
+ uint8 temp4;
+ uint8 temp5;
+ if(data<0)
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (45); // Put data into buffer, sends the data 
+ }
+ data = abs(data);
+ temp1 = data/10000;
+ if(temp1==0);
+ else
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp1); // Put data into buffer, sends the data 
+ }
+ data = data % 10000;
+ temp2 = data/1000;
+ if((temp1==0)&(temp2==0));
+ else 
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp2); // Put data into buffer, sends the data 
+ }
+ data = data % 1000;
+ temp3 = data/100;
+ if((temp1==0)&(temp2==0)&(temp3==0));
+ else 
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp3); // Put data into buffer, sends the data 
+ }
+ data = data % 100;
+ temp4 = data/10;
+ if((temp1==0)&(temp2==0)&(temp3==0)&(temp4==0));
+ else 
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp4); // Put data into buffer, sends the data 
+ }
+ temp5 = data % 10;
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (48+temp5); // Put data into buffer, sends the data 
+ 
+ 
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (10); // Put data into buffer, sends the data 
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (13); // Put data into buffer, sends the data 
+ return 0;
+}
+
diff --git a/src/c/hardware/avr/uart/i16AVRUARTTransmitu8.c b/src/c/hardware/avr/uart/i16AVRUARTTransmitu8.c
new file mode 100644
index 00000000..99638c77
--- /dev/null
+++ b/src/c/hardware/avr/uart/i16AVRUARTTransmitu8.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Signed Integer Values.
+
+
+#include "AVRPeripheralUART.h"
+
+uint8 i16AVRUARTTransmitu8(int16 data)
+{
+ uint16 temp1;
+ uint16 temp2;
+ temp1 = abs(data)/100;
+ if(data<0)
+ AVRUARTTransmitChar(45);
+ AVRUARTTransmitChar(48+temp1);
+ temp1 = abs(data) - temp1*100;
+ temp2 = temp1;
+ temp1 = temp1/10;
+ AVRUARTTransmitChar(48+temp1);
+ temp2 = temp2 - temp1*10;
+ AVRUARTTransmitChar(48+temp2);
+}
diff --git a/src/c/hardware/avr/uart/i8AVRUARTTransmita.c b/src/c/hardware/avr/uart/i8AVRUARTTransmita.c
new file mode 100644
index 00000000..10345738
--- /dev/null
+++ b/src/c/hardware/avr/uart/i8AVRUARTTransmita.c
@@ -0,0 +1,25 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Signed Integer Values.
+
+
+#include "AVRPeripheralUART.h"
+
+uint8 i8AVRUARTTransmita(int8 *x,int size)
+{
+ int i = 0;
+  for (i = 0; i < size; ++i) 
+  {
+   i8AVRUARTTransmits(x[i]);
+  }
+ return 0;
+}
diff --git a/src/c/hardware/avr/uart/i8AVRUARTTransmits.c b/src/c/hardware/avr/uart/i8AVRUARTTransmits.c
new file mode 100644
index 00000000..6b8c20fb
--- /dev/null
+++ b/src/c/hardware/avr/uart/i8AVRUARTTransmits.c
@@ -0,0 +1,26 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Signed Integer Values.
+
+
+#include "AVRPeripheralUART.h"
+
+uint8 i8AVRUARTTransmits(int8 data)
+{
+ uint8 temp1;
+ temp1 = abs(data);
+ if(data<0)
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (45); // Put data into buffer, sends the data 
+ u8AVRUARTTransmits(temp1);
+ return 0;
+}
diff --git a/src/c/hardware/avr/uart/u16AVRUARTTransmita.c b/src/c/hardware/avr/uart/u16AVRUARTTransmita.c
new file mode 100644
index 00000000..8b8e6301
--- /dev/null
+++ b/src/c/hardware/avr/uart/u16AVRUARTTransmita.c
@@ -0,0 +1,28 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Unsigned Integer Values.
+
+#include "AVRPeripheralUART.h"
+
+uint8 u16AVRUARTTransmita(uint16 *x, int size) 
+{
+  int i = 0;
+  for (i = 0; i < size; ++i) 
+  {
+   u16AVRUARTTransmits(x[i]);
+  }
+ return 0;
+}
+
+
+
+
diff --git a/src/c/hardware/avr/uart/u16AVRUARTTransmits.c b/src/c/hardware/avr/uart/u16AVRUARTTransmits.c
new file mode 100644
index 00000000..3cfb4a27
--- /dev/null
+++ b/src/c/hardware/avr/uart/u16AVRUARTTransmits.c
@@ -0,0 +1,87 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Unsigned Integer Values.
+
+#include "AVRPeripheralUART.h"
+
+uint8 u16AVRUARTTransmits(uint16 data) 
+{
+ uint8 temp1;
+ uint8 temp2;
+ uint8 temp3;
+ uint8 temp4;
+ uint8 temp5;
+ temp1 = data/10000;
+ if(temp1==0);
+ else
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp1); // Put data into buffer, sends the data 
+ }
+ data = data % 10000;
+ temp2 = data/1000;
+ if((temp1==0)&(temp2==0));
+ else 
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp2); // Put data into buffer, sends the data 
+ }
+ data = data % 1000;
+ temp3 = data/100;
+ if((temp1==0)&(temp2==0)&(temp3==0));
+ else 
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp3); // Put data into buffer, sends the data 
+ }
+ data = data % 100;
+ temp4 = data/10;
+ if((temp1==0)&(temp2==0)&(temp3==0)&(temp4==0));
+ else 
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp4); // Put data into buffer, sends the data 
+ }
+ temp5 = data % 10;
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (48+temp5); // Put data into buffer, sends the data 
+ 
+ 
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (10); // Put data into buffer, sends the data 
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (13); // Put data into buffer, sends the data 
+ return 0;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/c/hardware/avr/uart/u16AVRUARTTransmitu8.c b/src/c/hardware/avr/uart/u16AVRUARTTransmitu8.c
new file mode 100644
index 00000000..a68a5aa9
--- /dev/null
+++ b/src/c/hardware/avr/uart/u16AVRUARTTransmitu8.c
@@ -0,0 +1,38 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Unsigned Integer Values.
+
+#include "AVRPeripheralUART.h"
+
+uint8 u16AVRUARTTransmitu8(uint16 data) 
+{
+ uint8 temp1;
+ uint8 temp2;
+ uint8 temp3;
+ uint8 temp4;
+ temp1 = data/10000;
+ dAVRUARTTransmitu8(48+temp1);
+ temp1 = data - temp1*10000;
+ temp2 = temp1;
+ temp1 = temp1/1000;
+ dAVRUARTTransmitu8(48+temp1);
+ temp1 = temp2 - temp1*1000;
+ temp3 = temp1;
+ temp1 = temp1/100;
+ dAVRUARTTransmitu8(48+temp1);
+ temp1 = temp3 - temp1*100;
+ temp4 = temp1;
+ temp1 = temp1/10;
+ dAVRUARTTransmitu8(48+temp1);
+ temp1 = temp4 - temp1*10;
+ dAVRUARTTransmitu8(48+temp1);
+}
diff --git a/src/c/hardware/avr/uart/u8AVRUARTReceiveCharu8.c b/src/c/hardware/avr/uart/u8AVRUARTReceiveCharu8.c
new file mode 100644
index 00000000..df0a55b7
--- /dev/null
+++ b/src/c/hardware/avr/uart/u8AVRUARTReceiveCharu8.c
@@ -0,0 +1,20 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Receive Char.
+
+#include "AVRPeripheralUART.h"
+
+uint8 u8AVRUSARTReceiveCharu8()
+{
+ while ( !(UCSRA & (1<<RXC)) ) ;  // Wait for data to be received 
+ return UDR;                      // Get and return received data from buffer 
+}
diff --git a/src/c/hardware/avr/uart/u8AVRUARTSetups.c b/src/c/hardware/avr/uart/u8AVRUARTSetups.c
new file mode 100644
index 00000000..085ac6e3
--- /dev/null
+++ b/src/c/hardware/avr/uart/u8AVRUARTSetups.c
@@ -0,0 +1,143 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Setup Serial communication for ATmega16.
+
+
+#include "AVRPeripheralUART.h"
+
+uint8 u8AVRUARTSetups(uint8 mode, uint32 baudrate, uint8 stopbits, uint8 parity)
+{
+//Enable UART and USART
+ UCSRC |= (1<<URSEL);
+ UCSRB |= (1<<TXEN)|(1<<RXEN);
+
+ switch (mode) //According to mode set bits UMSEL and U2X
+{
+ case 0: //Normal mode
+        UCSRC &= ~(1<<UMSEL);  //Clear bit 6 UMSEL and  U2X=0
+	UCSRA &= ~(1<<U2X);
+	UCSRC &= ~(1<<UCPOL);  // Clock polarity bit
+	break;
+
+ case 1: //Double speed mode
+	UCSRC &= ~(1<<UMSEL); //Clear bit 6 UMSEL and U2X=1
+	UCSRA |= (1<<U2X);
+	UCSRC &= ~(1<<UCPOL);  //Clock polarity bit
+	break;
+		
+ case 2: //Synchronous mode
+	UCSRC |= (1<<UMSEL);  //Set bit 6 UMSEL and set clock polarity
+	UCSRC |= (1<<UCPOL);
+	break;
+}
+
+//Set stop bits
+if(stopbits == 0)
+{   
+ UCSRC &= ~(1<<USBS);      // 1 stopbit
+}
+else UCSRC |= (1<<USBS);   //2 stopbits
+
+//Set parity bit settings
+switch(parity)
+{
+ case 0: // Parity disabled
+	UCSRC &= ~(1<<UPM1);	//UPM1:0=0
+	UCSRC &= ~(1<<UPM0);
+	break;
+
+ case 1: // Even parity
+	UCSRC |= (1<<UPM1);    //UPM1:0 = 2
+	UCSRC &= ~(1<<UPM0);
+	break;
+
+ case 2: // Odd parity
+	UCSRC |= (1<<UPM1);    //UPM1:1 = 3
+	UCSRC |= (1<<UPM0);
+	break;
+}
+
+//Set baudrate
+UCSRC &= ~(1<<URSEL);
+switch(baudrate)
+{
+ case 2400:
+	   UBRRL = 0xA0;
+           UBRRH = 0x01;
+           break;
+
+ case 4800:
+	   UBRRL = 0xCF;
+	   UBRRH = 0x00;
+           break;
+
+ case 9600:
+	   UBRRL = 0x67;
+	   UBRRH = 0x00;
+           break;
+
+ case 14400:
+	    UBRRL = 0x44;
+	    UBRRH = 0x00;
+	    break;
+
+ case 19200:
+	    UBRRL = 0x33;
+	    UBRRH = 0x00;
+	    break;
+
+ case 28800:
+	    UBRRL = 0x22;
+	    UBRRH = 0x00;
+	    break;
+
+ case 38400:
+	    UBRRL = 0x19;
+            UBRRH = 0x00;
+	    break;
+
+ case 57600:
+	    UBRRL = 0x10;
+            UBRRH = 0x00;
+	    break;    	
+ 
+ case 768000:
+	     UBRRL = 0x0C;
+             UBRRH = 0x00;
+	     break;    	
+
+ case 115200:
+ 	     UBRRL = 0x08;
+             UBRRH = 0x00;
+	     break;
+    	
+ case 230400:
+	     UBRRL = 0x03;
+	     UBRRH = 0x00;
+	     break;
+    	
+ case 250000:
+	     UBRRL = 0x03;
+	     UBRRH = 0x00;
+	     break;
+
+ case 1000000:
+	      UBRRL = 0x00;
+	      UBRRH = 0x00;
+	      break; 
+}
+
+//Set data format
+UCSRC|= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);  
+
+ return 0;
+}
diff --git a/src/c/hardware/avr/uart/u8AVRUARTTransmita.c b/src/c/hardware/avr/uart/u8AVRUARTTransmita.c
new file mode 100644
index 00000000..14e2a0ea
--- /dev/null
+++ b/src/c/hardware/avr/uart/u8AVRUARTTransmita.c
@@ -0,0 +1,26 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Char.
+
+
+#include "AVRPeripheralUART.h"
+
+
+uint8 u8AVRUARTTransmita(uint8* x, int size) 
+{
+  int i = 0;
+  for (i = 0; i < size; ++i) 
+  {
+   u8AVRUARTTransmits(x[i]);
+  }
+ return 0;
+}
diff --git a/src/c/hardware/avr/uart/u8AVRUARTTransmits.c b/src/c/hardware/avr/uart/u8AVRUARTTransmits.c
new file mode 100644
index 00000000..e7e5c716
--- /dev/null
+++ b/src/c/hardware/avr/uart/u8AVRUARTTransmits.c
@@ -0,0 +1,60 @@
+/* Copyright (C) 2016 - 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
+ Author: Ashish Kamble
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/ 
+//Function to Transmit Char.
+
+
+#include "AVRPeripheralUART.h"
+
+uint8 u8AVRUARTTransmits(uint8 data)
+{
+ uint8 temp1;
+ uint8 temp2;
+ temp1 = data;
+ data = data/100;
+ if(data==0);  
+ else 
+ {
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+data); // Put data into buffer, sends the data 
+ }
+  temp1 = temp1 - data*100;
+  temp2 = temp1;
+  temp1 = temp1/10;
+  if((data==0)&(temp1==0));
+  else
+  {
+   while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+   UDR = (48+temp1); // Put data into buffer, sends the data 
+  }
+  temp2 = temp2 - temp1*10;
+  while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+  UDR = (48+temp2); // Put data into buffer, sends the data 
+ 
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (10); // Put data into buffer, sends the data 
+ while ( !( UCSRA & (1<<UDRE)) ) ; // Wait for empty transmit buffer 
+ UDR = (13); // Put data into buffer, sends the data 
+ return 0;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
-- 
cgit