]> rtime.felk.cvut.cz Git - sysless.git/blob - board/arm/lpceurobot/app/minibee/uart_minibee.c
d08100e5924373cb728de0ecda4f034c97364662
[sysless.git] / board / arm / lpceurobot / app / minibee / uart_minibee.c
1 //
2 // Author: Bc. Jiri Kubias <Jiri.kubias@gmail.com>, (C) 2008
3 //
4 // Copyright: (c) DCE FEE CTU - Department of Control Engeneering
5 // License: GNU GPL v.2
6 //
7
8
9 /**
10  * @file   uart_minibee.c
11  * @author Bc. Jiri Kubias , DCE FEL CTU 2008
12  * 
13  * @brief  Uart library - particulary platform dependent
14  * 
15  */
16
17
18 #include "MC1319xdef.h"
19
20 #ifdef LPC
21         #include <uart.h>
22 #endif
23
24
25 /**
26  *      Send one char to uart.
27  */
28 void uart_send_char(char val)
29 {
30
31 #ifdef  LPC
32         uart0SendCh(val);
33 #endif
34 }
35
36 /**
37  *      Read one char from uart.
38  */
39 char uart_get_char(void)
40 {
41
42 #ifdef  LPC
43         return uart0GetCh();
44 #endif
45 }
46
47 /**
48  *      Initialize UART - platform dependent
49  */
50 void init_uart(void)
51 {
52 #ifdef LPC
53         init_uart0((int)9600, UART_BITS_8, UART_STOP_BIT_1, UART_PARIT_OFF, 0 );
54 #endif
55 }
56
57
58 /**
59  *      Send string to serial output in ASCII code. .
60  *      @param data[]   string to print
61  */
62 void send_rs_str(char data[])
63 {
64         
65         int i = 0;
66         int j = 0;
67         
68         for (j = 0; j < 255; j++)
69         {
70                 if(data[j] == 0) break;
71         }
72                 
73         for (i= 0 ; i < j; i++)
74         {
75                 uart_send_char(data[i]);
76         }
77 }
78
79 /**
80  *      Send int value to serial output in ASCII code. Removes unused zeros.
81  *      @param val      value to print
82  */
83 void send_rs_int(int val)
84 {
85         char dat[8];
86         int i;
87         int pom = 0;
88         
89         for(i = 0; i < 8; i++)
90         {
91                 dat[i] = (val & 0xF) + 0x30;
92                 if(dat[i] > '9')
93                         dat[i] += 7;
94                 val >>= 4;
95         }
96         
97         for(i = 0; i < 8; i++)
98         {
99                 if((pom == 0) & (dat[7-i] == '0')) 
100                 {
101                         if((i == 6) | (i == 7))
102                                 uart_send_char('0');            
103                         continue;
104                 }
105                 pom = 1;
106                 uart_send_char(dat[7-i]);
107         }
108         
109 }
110
111
112
113