Stephen Davis
/
BT_Hub
Library set up as dummy module on mbed to mimic Nordic.
uart1.cpp@2:9ab591cf81b8, 2016-12-13 (annotated)
- Committer:
- Stephen_NewVistas
- Date:
- Tue Dec 13 00:20:29 2016 +0000
- Revision:
- 2:9ab591cf81b8
- Parent:
- 0:226550611f0d
everything commented . now going to strip out mbed stuff.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Stephen_NewVistas | 0:226550611f0d | 1 | #include "uart1.h" |
Stephen_NewVistas | 0:226550611f0d | 2 | #include "mbed.h" |
Stephen_NewVistas | 0:226550611f0d | 3 | |
Stephen_NewVistas | 0:226550611f0d | 4 | #define BUFFERSIZE 128 |
Stephen_NewVistas | 0:226550611f0d | 5 | extern Serial bus; |
Stephen_NewVistas | 0:226550611f0d | 6 | DigitalOut led_2(LED2); |
Stephen_NewVistas | 0:226550611f0d | 7 | |
Stephen_NewVistas | 0:226550611f0d | 8 | static unsigned char U1buf[BUFFERSIZE]; |
Stephen_NewVistas | 0:226550611f0d | 9 | static unsigned int U1ptr; |
Stephen_NewVistas | 0:226550611f0d | 10 | static unsigned int U1gptr; |
Stephen_NewVistas | 0:226550611f0d | 11 | static unsigned int U1cnt; |
Stephen_NewVistas | 0:226550611f0d | 12 | |
Stephen_NewVistas | 0:226550611f0d | 13 | |
Stephen_NewVistas | 0:226550611f0d | 14 | static void |
Stephen_NewVistas | 0:226550611f0d | 15 | serial_event() |
Stephen_NewVistas | 0:226550611f0d | 16 | { |
Stephen_NewVistas | 0:226550611f0d | 17 | led_2 = !led_2; |
Stephen_NewVistas | 0:226550611f0d | 18 | |
Stephen_NewVistas | 0:226550611f0d | 19 | if(bus.readable()) |
Stephen_NewVistas | 0:226550611f0d | 20 | { |
Stephen_NewVistas | 0:226550611f0d | 21 | U1buf[U1ptr++] = (unsigned char) USART1->RDR & 0xFF;//(unsigned char)bus.getc(); |
Stephen_NewVistas | 0:226550611f0d | 22 | U1ptr &= BUFFERSIZE-1; |
Stephen_NewVistas | 0:226550611f0d | 23 | if(U1ptr == U1gptr) |
Stephen_NewVistas | 0:226550611f0d | 24 | { |
Stephen_NewVistas | 0:226550611f0d | 25 | U1gptr++; |
Stephen_NewVistas | 0:226550611f0d | 26 | U1gptr &= BUFFERSIZE-1; |
Stephen_NewVistas | 0:226550611f0d | 27 | } |
Stephen_NewVistas | 0:226550611f0d | 28 | else |
Stephen_NewVistas | 0:226550611f0d | 29 | { |
Stephen_NewVistas | 0:226550611f0d | 30 | U1cnt++; |
Stephen_NewVistas | 0:226550611f0d | 31 | } |
Stephen_NewVistas | 0:226550611f0d | 32 | } |
Stephen_NewVistas | 0:226550611f0d | 33 | } |
Stephen_NewVistas | 0:226550611f0d | 34 | |
Stephen_NewVistas | 0:226550611f0d | 35 | void |
Stephen_NewVistas | 0:226550611f0d | 36 | init_uart1(void) |
Stephen_NewVistas | 0:226550611f0d | 37 | { |
Stephen_NewVistas | 0:226550611f0d | 38 | bus.baud(115200); |
Stephen_NewVistas | 0:226550611f0d | 39 | bus.attach(&serial_event,Serial::RxIrq); |
Stephen_NewVistas | 0:226550611f0d | 40 | |
Stephen_NewVistas | 0:226550611f0d | 41 | U1ptr = U1gptr = U1cnt = 0; |
Stephen_NewVistas | 0:226550611f0d | 42 | } |
Stephen_NewVistas | 0:226550611f0d | 43 | |
Stephen_NewVistas | 0:226550611f0d | 44 | int |
Stephen_NewVistas | 0:226550611f0d | 45 | uart1_is_char(void) |
Stephen_NewVistas | 0:226550611f0d | 46 | { |
Stephen_NewVistas | 0:226550611f0d | 47 | return U1cnt; |
Stephen_NewVistas | 0:226550611f0d | 48 | } |
Stephen_NewVistas | 0:226550611f0d | 49 | |
Stephen_NewVistas | 0:226550611f0d | 50 | int |
Stephen_NewVistas | 0:226550611f0d | 51 | uart1_get_char(void) |
Stephen_NewVistas | 0:226550611f0d | 52 | { |
Stephen_NewVistas | 0:226550611f0d | 53 | int result; |
Stephen_NewVistas | 0:226550611f0d | 54 | result = 0; |
Stephen_NewVistas | 0:226550611f0d | 55 | if(U1cnt) |
Stephen_NewVistas | 0:226550611f0d | 56 | { |
Stephen_NewVistas | 0:226550611f0d | 57 | result = U1buf[U1gptr++]; |
Stephen_NewVistas | 0:226550611f0d | 58 | U1gptr &= BUFFERSIZE-1; |
Stephen_NewVistas | 0:226550611f0d | 59 | U1cnt--; |
Stephen_NewVistas | 0:226550611f0d | 60 | } |
Stephen_NewVistas | 0:226550611f0d | 61 | |
Stephen_NewVistas | 0:226550611f0d | 62 | return result; |
Stephen_NewVistas | 0:226550611f0d | 63 | } |
Stephen_NewVistas | 0:226550611f0d | 64 | |
Stephen_NewVistas | 0:226550611f0d | 65 | void |
Stephen_NewVistas | 0:226550611f0d | 66 | send_uart1_char(unsigned char c) |
Stephen_NewVistas | 0:226550611f0d | 67 | { |
Stephen_NewVistas | 0:226550611f0d | 68 | bus.putc(c); |
Stephen_NewVistas | 0:226550611f0d | 69 | } |