4 x 3 coupons

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
davidlenihan
Date:
Thu Jul 13 20:05:26 2017 +0000
Commit message:
Lab prog61006

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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Jul 13 20:05:26 2017 +0000
@@ -0,0 +1,106 @@
+#include "mbed.h"
+void setcolhigh(void);
+void setcol1(void);
+void setcol2(void);
+void setcol3(void);
+char key_pressed(void);
+
+//Set up the pins for the keypad
+DigitalOut col1     (PTA16);    // pin 3 on keypad
+DigitalOut col2     (PTE31);    // pin 1 on keypad
+DigitalOut col3     (PTC16);    // pin 5 on keypad
+
+DigitalIn row1      (PTA17);    // pin 2 on keypad
+DigitalIn row2      (PTC12);    // pin 7 on keypad
+DigitalIn row3      (PTC13);    // pin 6 on keypad
+DigitalIn row4      (PTC17);    // pin 4 on keypard
+//Set up the serial communication link
+Serial pc(USBTX, USBRX); // tx, rx
+
+
+
+int main()
+{
+    char my_char;
+    while(1) //infinate loop
+    {
+       my_char = key_pressed(); //Read the value of the key pressed
+       if (my_char !='N')
+       pc.printf("key pressed is %c\n\r",my_char);//print out the key pressed over the serial link
+        wait(0.2);
+    }
+}
+
+char key_pressed(void)
+{
+    char result ='N'; 
+    setcolhigh();
+    wait(0.2);
+    //check col 0
+    setcol1();
+    wait(0.2);
+    if (row1==0)
+        result = '1';
+    if (row2 ==0)
+        result = '4';
+    if (row3 ==0)
+        result ='7';
+    if (row4 ==0)
+        result = '*';
+        
+    //check col 1
+    setcol2();
+    wait(0.2);
+    if (row1==0)
+        result = '2';
+    if (row2 ==0)
+        result = '5';
+    if (row3 ==0)
+        result ='8';
+    if (row4 ==0)
+        result = '0';
+    
+    //check col 2
+    setcol3();
+    wait(0.2);
+    if (row1==0)
+        result = '3';
+    if (row2 ==0)
+        result = '6';
+    if (row3 ==0)
+        result ='9';
+    if (row4 ==0)
+        result = '?';
+    return result;
+}
+
+void setcolhigh()
+{
+    //Set all the columns high
+
+    col1 = 1;
+    col2 = 1;
+    col3 = 1;
+
+}
+void setcol1()
+{
+    //Set column 1 low
+    col1 = 0;
+    col2 = 1;
+    col3 = 1;
+}
+void setcol2()
+{
+    //Set column 2 low
+    col1 = 1;
+    col2 = 0;
+    col3 = 1;
+}
+void setcol3()
+{
+    //set column 3 low
+    col1 = 1;
+    col2 = 1;
+    col3 = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Jul 13 20:05:26 2017 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/mbed_official/code/mbed/builds/22da6e220af6
\ No newline at end of file