VT3_Dean_Fraj

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
dfraj
Date:
Thu Nov 17 18:04:17 2016 +0000
Commit message:
VT3_Dean_Fraj

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 2963997f2a2f main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Nov 17 18:04:17 2016 +0000
@@ -0,0 +1,75 @@
+#include "mbed.h"
+Serial pc(USBTX, USBRX); // comms to host PC
+BusOut Seg1(p5,p6,p7,p8,p9,p10,p11,p12); // A,B,C,D,E,F,G,DP
+BusOut Seg2(p13,p14,p15,p16,p17,p18,p19,p20); // A,B,C,D,E,F,G,DP
+void SegInit(void); // function prototype
+void HostInit(void); // function prototype
+char GetKeyInput(void); // function prototype
+char SegConvert(char SegValue); // function prototype
+char data1, data2; // variable declarations
+int main()   // main program
+{
+    SegInit(); // call function to initialise the 7-seg displays
+    HostInit(); // call function to initialise the host terminal
+    while (1) { // infinite loop
+        data2 = GetKeyInput(); // call function to get 1st key press
+        Seg2=SegConvert(data2); // call function to convert and output
+        data1 = GetKeyInput(); // call function to get 2nd key press
+        Seg1=SegConvert(data1); // call function to convert and output
+        pc.printf(" "); // display spaces between 2 digit numbers
+    }
+}
+
+void SegInit(void)
+{
+    Seg1=SegConvert(0); // initialise to zero
+    Seg2=SegConvert(0); // initialise to zero
+}
+void HostInit(void)
+{
+    pc.printf("\n\rType two digit numbers to be displayed on the 7-seg display\n\r");
+}
+char GetKeyInput(void)
+{
+    char c = pc.getc(); // get keyboard data (note num. ascii range 0x30-0x39)
+    pc.printf("%c",c); // print ascii value to host PC terminal
+    return (c&0x0F); // return value as non-ascii (bitmask c with value 0x0F)
+}
+
+char SegConvert(char SegValue)   // function 'SegConvert'
+{
+    char SegByte=0x00;
+    switch (SegValue) { //DPGFEDCBA
+        case 0 :
+            SegByte = 0x3F;
+            break; // 00111111 binary
+        case 1 :
+            SegByte = 0x06;
+            break; // 00000110 binary
+        case 2 :
+            SegByte = 0x5B;
+            break; // 01011011 binary
+        case 3 :
+            SegByte = 0x4F;
+            break; // 01001111 binary
+        case 4 :
+            SegByte = 0x66;
+            break; // 01100110 binary
+        case 5 :
+            SegByte = 0x6D;
+            break; // 01101101 binary
+        case 6 :
+            SegByte = 0x7D;
+            break; // 01111101 binary
+        case 7 :
+            SegByte = 0x07;
+            break; // 00000111 binary
+        case 8 :
+            SegByte = 0x7F;
+            break; // 01111111 binary
+        case 9 :
+            SegByte = 0x6F;
+            break; // 01101111 binary
+    }
+    return SegByte;
+}
\ No newline at end of file
diff -r 000000000000 -r 2963997f2a2f mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Nov 17 18:04:17 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/0ab6a29f35bf
\ No newline at end of file