Using getc

Dependencies:   ShiftReg mbed

Committer:
eencae
Date:
Fri Mar 03 15:10:39 2017 +0000
Revision:
0:8ccb53688328
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew 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 }