Craig Evans
/
1620_App_Board_UART_getc
Using getc
main.cpp@0:8ccb53688328, 2017-03-03 (annotated)
- Committer:
- eencae
- Date:
- Fri Mar 03 15:10:39 2017 +0000
- Revision:
- 0:8ccb53688328
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:8ccb53688328 | 1 | /* ELEC1620 Application Board Example |
eencae | 0:8ccb53688328 | 2 | |
eencae | 0:8ccb53688328 | 3 | Example of using getc to receive data from the PC to control |
eencae | 0:8ccb53688328 | 4 | the application board |
eencae | 0:8ccb53688328 | 5 | |
eencae | 0:8ccb53688328 | 6 | (c) Dr Craig A. Evans, University of Leeds, Feb 2017 |
eencae | 0:8ccb53688328 | 7 | |
eencae | 0:8ccb53688328 | 8 | */ |
eencae | 0:8ccb53688328 | 9 | |
eencae | 0:8ccb53688328 | 10 | #include "mbed.h" |
eencae | 0:8ccb53688328 | 11 | #include "ShiftReg.h" // include ShiftReg library |
eencae | 0:8ccb53688328 | 12 | |
eencae | 0:8ccb53688328 | 13 | ShiftReg shift; // create ShiftReg object |
eencae | 0:8ccb53688328 | 14 | Serial pc(USBTX,USBRX); |
eencae | 0:8ccb53688328 | 15 | |
eencae | 0:8ccb53688328 | 16 | int main() |
eencae | 0:8ccb53688328 | 17 | { |
eencae | 0:8ccb53688328 | 18 | // values for 0 - 9 in hex |
eencae | 0:8ccb53688328 | 19 | int seven_seg_array [] = { |
eencae | 0:8ccb53688328 | 20 | 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x67 |
eencae | 0:8ccb53688328 | 21 | }; |
eencae | 0:8ccb53688328 | 22 | |
eencae | 0:8ccb53688328 | 23 | // write 0 to 7-seg to turn it off |
eencae | 0:8ccb53688328 | 24 | shift.write(0x00); |
eencae | 0:8ccb53688328 | 25 | |
eencae | 0:8ccb53688328 | 26 | while(1) { |
eencae | 0:8ccb53688328 | 27 | |
eencae | 0:8ccb53688328 | 28 | // readable tells us if a character is waiting to be read |
eencae | 0:8ccb53688328 | 29 | if ( pc.readable() ) { |
eencae | 0:8ccb53688328 | 30 | // if one is there, then read in using getc |
eencae | 0:8ccb53688328 | 31 | char c = pc.getc(); |
eencae | 0:8ccb53688328 | 32 | |
eencae | 0:8ccb53688328 | 33 | // check if it is a digit that has been received - note ' ' for char |
eencae | 0:8ccb53688328 | 34 | if (c >= '0' && c <= '9') { |
eencae | 0:8ccb53688328 | 35 | // the received char is in ASCII so convert to int by substracting |
eencae | 0:8ccb53688328 | 36 | // the ASCII value of '0' |
eencae | 0:8ccb53688328 | 37 | int value = c - '0'; |
eencae | 0:8ccb53688328 | 38 | |
eencae | 0:8ccb53688328 | 39 | // make that value appear on the 7-seg display |
eencae | 0:8ccb53688328 | 40 | shift.write(seven_seg_array [value]); |
eencae | 0:8ccb53688328 | 41 | |
eencae | 0:8ccb53688328 | 42 | } |
eencae | 0:8ccb53688328 | 43 | |
eencae | 0:8ccb53688328 | 44 | } |
eencae | 0:8ccb53688328 | 45 | |
eencae | 0:8ccb53688328 | 46 | |
eencae | 0:8ccb53688328 | 47 | } |
eencae | 0:8ccb53688328 | 48 | } |