Will Porter's Hw2 Code - Glove based chording keyboard.
Dependencies: PinDetect_KL25Z mbed
Revision 0:dd99cec76b82, committed 2015-09-14
- Comitter:
- wretrop
- Date:
- Mon Sep 14 17:22:39 2015 +0000
- Commit message:
- Will Porter finished HW2 Code.
Changed in this revision
diff -r 000000000000 -r dd99cec76b82 PinDetect_KL25Z.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PinDetect_KL25Z.lib Mon Sep 14 17:22:39 2015 +0000 @@ -0,0 +1,1 @@ +http://developer.mbed.org/users/bjo3rn/code/PinDetect_KL25Z/#4f11ae3737c7
diff -r 000000000000 -r dd99cec76b82 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Sep 14 17:22:39 2015 +0000 @@ -0,0 +1,143 @@ +#include "mbed.h" +#include "PinDetect.h" + +Serial pc(USBTX,USBRX); + +char alphabet[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\0'}; +int indices[] = {128,64,32,8,4,2,136,132,130,129,72,68,66,65,40,36,34,33,24,20,18,17,96,6,12,3}; + +DigitalOut highPin(D15); // Pin Used to bring left side buttons high may not be needed +bool boolArray[8]; + +// Left side pins +PinDetect L1(PTD3); +PinDetect L2(PTD2); +PinDetect L3(PTD0); +PinDetect L4(PTC8); + +// Right side pins +PinDetect R1(PTA16); +PinDetect R2(PTC17); +PinDetect R3(PTC16); +PinDetect R4(PTC11); + +// Left Button ISRs +void L1ButtonHeld(void){ + boolArray[0] = 0; + } +void L1ButtonRelease(void){ + boolArray[0] = 1; + } +void L2ButtonHeld(void){ + boolArray[1] = 0; + } +void L2ButtonRelease(void){ + boolArray[1] = 1; + } +void L3ButtonHeld(void){ + boolArray[2] = 0; + } +void L3ButtonRelease(void){ + boolArray[2] = 1; + } +void L4ButtonHeld(void){ + boolArray[3] = 0; + } +void L4ButtonRelease(void){ + boolArray[3] = 1; + } + +// Right Side ISRs +void R1ButtonHeld(void){ + boolArray[4] = 0; + } +void R1ButtonRelease(void){ + boolArray[4] = 1; + } +void R2ButtonHeld(void){ + boolArray[5] = 0; + } +void R2ButtonRelease(void){ + boolArray[5] = 1; + } +void R3ButtonHeld(void){ + boolArray[6] = 0; + } +void R3ButtonRelease(void){ + boolArray[6] = 1; + } +void R4ButtonHeld(void){ + boolArray[7] = 0; + } +void R4ButtonRelease(void){ + boolArray[7] = 1; + } + +int main() { + pc.printf("Starting\n\r"); + highPin = 1; + + L1.attach_asserted(&L1ButtonHeld); + L1.attach_deasserted(&L1ButtonRelease); + L1.setSampleFrequency(); + L1.mode(PullUp); + + L2.attach_asserted(&L2ButtonHeld); + L2.attach_deasserted(&L2ButtonRelease); + L2.setSampleFrequency(); + L2.mode(PullUp); + + L3.attach_asserted(&L3ButtonHeld); + L3.attach_deasserted(&L3ButtonRelease); + L3.setSampleFrequency(); + L3.mode(PullUp); + + L4.attach_asserted(&L4ButtonHeld); + L4.attach_deasserted(&L4ButtonRelease); + L4.setSampleFrequency(); + L4.mode(PullUp); + + R1.attach_asserted(&R1ButtonHeld); + R1.attach_deasserted(&R1ButtonRelease); + R1.setSampleFrequency(); + R1.mode(PullUp); + + R2.attach_asserted(&R2ButtonHeld); + R2.attach_deasserted(&R2ButtonRelease); + R2.setSampleFrequency(); + R2.mode(PullUp); + + R3.attach_asserted(&R3ButtonHeld); + R3.attach_deasserted(&R3ButtonRelease); + R3.setSampleFrequency(); + R3.mode(PullUp); + + R4.attach_asserted(&R4ButtonHeld); + R4.attach_deasserted(&R4ButtonRelease); + R4.setSampleFrequency(); + R4.mode(PullUp); + + while(1) { + int num = 0; + int pow = 1; + + for (int i = 7; i>-1; i--){ + num = num + boolArray[i] * pow; + pow = pow * 2; + } + + for (int i = 0; i < 27; i++){ + if (num == indices[i]){ + pc.printf("%c",alphabet[i]); + } + } + if (num == 16){ + pc.printf("\b \b"); + } + + if (num == 1){ + pc.printf(" "); + } + + wait(0.2); +}
diff -r 000000000000 -r dd99cec76b82 mbed.bld --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Mon Sep 14 17:22:39 2015 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/ba1f97679dad \ No newline at end of file