]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/eb_test/uar.c
eb_test: add eb_test dir
[eurobot/public.git] / src / eb_test / uar.c
1 #include <uart.h>
2
3
4
5
6 /**
7  *      Send one char to uart.
8  */
9 void uart_send_char(char val)
10 {
11         uart0SendCh(val);
12 }
13
14 /**
15  *      Read one char from uart.
16  */
17 char uart_get_char(void)
18 {
19         return uart0GetCh();
20 }
21
22 /**
23  *      Initialize UART - platform dependent
24  */
25 void init_uart(void)
26 {
27         init_uart0((int)9600, UART_BITS_8, UART_STOP_BIT_1, UART_PARIT_OFF, 0 );
28 }
29
30
31 /**
32  *      Send string to serial output in ASCII code. .
33  *      @param data[]   string to print
34  */
35 void send_rs_str(const char data[])
36 {
37         
38         int i = 0;
39         int j = 0;
40         
41         for (j = 0; j < 255; j++)
42         {
43                 if(data[j] == 0) break;
44         }
45                 
46         for (i= 0 ; i < j; i++)
47         {
48                 uart_send_char(data[i]);
49         }
50 }
51
52 /**
53  *      Send int value to serial output in ASCII code. Removes unused zeros.
54  *      @param val      value to print
55  */
56 void send_rs_int(int val)
57 {
58         char dat[8];
59         int i;
60         int pom = 0;
61         
62         for(i = 0; i < 8; i++)
63         {
64                 dat[i] = (val & 0xF) + 0x30;
65                 if(dat[i] > '9')
66                         dat[i] += 7;
67                 val >>= 4;
68         }
69         
70         for(i = 0; i < 8; i++)
71         {
72                 if((pom == 0) & (dat[7-i] == '0')) 
73                 {
74                         if((i == 6) | (i == 7))
75                                 uart_send_char('0');            
76                         continue;
77                 }
78                 pom = 1;
79                 uart_send_char(dat[7-i]);
80         }
81         
82 }