Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Revision 0:c771d4ee0a76, committed 2015-05-22
- Comitter:
- djdinko
- Date:
- Fri May 22 15:57:04 2015 +0000
- Commit message:
- Vjezba 7-7
Changed in this revision
diff -r 000000000000 -r c771d4ee0a76 HostIO.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/HostIO.cpp Fri May 22 15:57:04 2015 +0000
@@ -0,0 +1,12 @@
+// HostIO.cpp code for Exercise 7-7
+#include "HostIO.h"
+#include "SegDisplay.h" // allow access to functions and objects in SegDisplay.cpp
+Serial pc(USBTX, USBRX); // communication to host PC
+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 numerical 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)
+}
\ No newline at end of file
diff -r 000000000000 -r c771d4ee0a76 HostIO.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/HostIO.h Fri May 22 15:57:04 2015 +0000 @@ -0,0 +1,8 @@ +// HostIO.h file for Exercise 7-7 +#ifndef HOSTIO_H +#define HOSTIO_H +#include "mbed.h" +extern Serial pc; // allow pc to be manipulated by other files +void HostInit(void); // function prototype +char GetKeyInput(void); // function prototype +#endif \ No newline at end of file
diff -r 000000000000 -r c771d4ee0a76 SegDisplay.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SegDisplay.cpp Fri May 22 15:57:04 2015 +0000
@@ -0,0 +1,24 @@
+// SegDisplay.cpp file for Exercise 7-7
+#include "SegDisplay.h"
+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) {
+Seg1=SegConvert(0); // initialise to zero
+Seg2=SegConvert(0); // initialise to zero
+}
+char SegConvert(char SegValue) { // function 'SegConvert'
+char SegByte=0x00;
+switch (SegValue) { //DP G F E D C B A
+case 0 : SegByte = 0x3F; break; // 0 0 1 1 1 1 1 1 binary
+case 1 : SegByte = 0x06; break; // 0 0 0 0 0 1 1 0 binary
+case 2 : SegByte = 0x5B; break; // 0 1 0 1 1 0 1 1 binary
+case 3 : SegByte = 0x4F; break; // 0 1 0 0 1 1 1 1 binary
+case 4 : SegByte = 0x66; break; // 0 1 1 0 0 1 1 0 binary
+case 5 : SegByte = 0x6D; break; // 0 1 1 0 1 1 0 1 binary
+case 6 : SegByte = 0x7D; break; // 0 1 1 1 1 1 0 1 binary
+case 7 : SegByte = 0x07; break; // 0 0 0 0 0 1 1 1 binary
+case 8 : SegByte = 0x7F; break; // 0 1 1 1 1 1 1 1 binary
+case 9 : SegByte = 0x6F; break; // 0 1 1 0 1 1 1 1 binary
+}
+return SegByte;
+}
\ No newline at end of file
diff -r 000000000000 -r c771d4ee0a76 SegDisplay.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SegDisplay.h Fri May 22 15:57:04 2015 +0000 @@ -0,0 +1,9 @@ +// SegDisplay.h file for Exercise 24 +#ifndef SEGDISPLAY_H +#define SEGDISPLAY_H +#include "mbed.h" +extern BusOut Seg1; // allow Seg1 to be manipulated by other files +extern BusOut Seg2; // allow Seg2 to be manipulated by other files +void SegInit(void); // function prototype +char SegConvert(char SegValue); // function prototype +#endif \ No newline at end of file
diff -r 000000000000 -r c771d4ee0a76 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Fri May 22 15:57:04 2015 +0000
@@ -0,0 +1,15 @@
+#include "mbed.h"
+#include "HostIO.h"
+#include "SegDisplay.h"
+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
+}
+}
\ No newline at end of file
diff -r 000000000000 -r c771d4ee0a76 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri May 22 15:57:04 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/dbbf35b96557 \ No newline at end of file