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:4c68dc485cb8, committed 2015-11-06
- Comitter:
- benrammok
- Date:
- Fri Nov 06 22:29:52 2015 +0000
- Commit message:
- 8-button keypad, can be extended
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 4c68dc485cb8 main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Fri Nov 06 22:29:52 2015 +0000
@@ -0,0 +1,75 @@
+#include "mbed.h"
+
+//Definerer BusIn
+BusIn numpad(PA_10, PB_3, PB_5,PB_4, PB_10, PA_8, PA_9, PB_6);
+
+//Funksjonsprototyper
+int returnValueKeyPressed(int, int);
+
+int main() {
+ numpad.mode(PullUp);
+ int sum;
+ int tall1, tall2;
+ while(1) {
+ sum = 0;
+ printf("Press first number: ");
+
+ //Så lenge ingen av knappene trykkes
+ while(returnValueKeyPressed(numpad.read(), 1)==0){};
+
+ //Bruker funksjonen returnValueKeyPressed som gjør om BusIn signal til korrensponderende tall
+ tall1 = returnValueKeyPressed(numpad.read(), 1);
+ printf(" %d\r\n", returnValueKeyPressed(numpad.read(), 1));
+
+ //Så lenge en eller fler av knappene ikke er sluppet
+ while(returnValueKeyPressed(numpad.read(), 1)!=0){};
+ printf("Press second number: ");
+
+ //Så lenge ingen av knappene trykkes
+ while(returnValueKeyPressed(numpad.read(), 1)==0){};
+
+ tall2 = returnValueKeyPressed(numpad.read(), 1);
+ printf(" %d\r\n", returnValueKeyPressed(numpad.read(), 1));
+
+ //Så lenge en eller fler av knappene ikke er sluppet
+ while(returnValueKeyPressed(numpad.read(), 1)!=0){};
+ sum = tall1 + tall2;
+ printf("The sum of the two numbers is %d\r\n", sum);
+ wait(1);
+ }
+
+}
+
+
+//Funksjon for å konvertere inngangsbit til tilhørende verdi på et 8-knapper numpad, kan utvides til 12-knapper
+int returnValueKeyPressed(int key, int inv = 0){
+ int opKey;
+
+ //Betingelse som sjekker om det er snakk om inverterte innganger
+ if(inv){
+ opKey = ~key & 0xFF; //Inverterer Key og masker for 8-bit, kan forandres til flere bit
+ }else{
+ opKey = key & 0xFF; //Masker for 8-bit, kan forandres til flere bit
+ }
+
+ switch(opKey){
+ case 1: // 0000 0001
+ return 1;
+ case 2: // 0000 0010
+ return 2;
+ case 4: // 0000 0100
+ return 3;
+ case 8: // 0000 1000
+ return 4;
+ case 16: // 0001 0000
+ return 5;
+ case 32: // 0010 0000
+ return 6;
+ case 64: // 0100 0000
+ return 7;
+ case 128: // 1000 0000
+ return 8;
+ default:
+ return 0;
+ }
+}
\ No newline at end of file
diff -r 000000000000 -r 4c68dc485cb8 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Fri Nov 06 22:29:52 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/8ed44a420e5c \ No newline at end of file