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.
main.cpp
00001 #include "mbed.h" 00002 #include "PinDetect.h" 00003 00004 Serial pc(USBTX, USBRX); // tx, rx 00005 00006 PinDetect button1(D7); 00007 PinDetect button2(D6); 00008 PinDetect button3(D5); 00009 PinDetect button4(D4); 00010 PinDetect button5(D3); 00011 00012 PinDetect buttonBottom(PTC0); 00013 PinDetect buttonLeft(PTC7); 00014 PinDetect buttonMid(PTC5); 00015 00016 int buttonSide = 0; //initialize to left 00017 int buttonLevel = 0; //initialize to top 00018 00019 char key1[2][3] = {{'Q','A','Z'}, {'Y','H','N'}}; 00020 char key2[2][3] = {{'W','S','X'}, {'U','J','M'}}; 00021 char key3[2][3] = {{'E','D','C'}, {'I','K',' '}}; 00022 char key4[2][3] = {{'R','F','V'}, {'O','L','.'}}; 00023 char key5[2][3] = {{'T','G','B'}, {'P','!','?'}}; 00024 00025 void key1Pressed(void) { 00026 pc.printf("%c",key1[buttonSide][buttonLevel]); 00027 } 00028 void key2Pressed(void) { 00029 pc.printf("%c",key2[buttonSide][buttonLevel]); 00030 } 00031 void key3Pressed(void) { 00032 pc.printf("%c",key3[buttonSide][buttonLevel]); 00033 } 00034 void key4Pressed(void) { 00035 pc.printf("%c",key4[buttonSide][buttonLevel]); 00036 } 00037 void key5Pressed(void) { 00038 pc.printf("%c",key5[buttonSide][buttonLevel]); 00039 } 00040 00041 void keyLeftHeld(void) { 00042 //pc.printf("in left mode\r\n"); 00043 buttonSide = 0; 00044 pc.printf("%c",'0'); 00045 } 00046 void keyLeftReleased(void) { 00047 //pc.printf("in right mode\r\n"); 00048 buttonSide = 1; 00049 pc.printf("%c",'1'); 00050 } 00051 00052 void keyLevelOff(void) { 00053 buttonLevel = 0; 00054 pc.printf("%c",'2'); 00055 } 00056 void keyMidOn(void) { 00057 buttonLevel = 1; 00058 pc.printf("%c",'4'); 00059 } 00060 void keyBottonOn(void) { 00061 buttonLevel = 2; 00062 pc.printf("%c",'6'); 00063 } 00064 00065 int main() { 00066 button1.mode(PullUp); 00067 button2.mode(PullUp); 00068 button3.mode(PullUp); 00069 button4.mode(PullUp); 00070 button5.mode(PullUp); 00071 buttonBottom.mode(PullUp); 00072 buttonLeft.mode(PullUp); 00073 buttonMid.mode(PullUp); 00074 00075 00076 button1.attach_asserted(&key1Pressed); 00077 button2.attach_asserted(&key2Pressed); 00078 button3.attach_asserted(&key3Pressed); 00079 button4.attach_asserted(&key4Pressed); 00080 button5.attach_asserted(&key5Pressed); 00081 00082 //note that these are backwards from what you think they should be 00083 buttonLeft.attach_asserted_held(&keyLeftHeld); 00084 buttonLeft.attach_deasserted_held(&keyLeftReleased); 00085 //releasing either level button does the same thing 00086 buttonMid.attach_asserted_held(&keyLevelOff); 00087 buttonMid.attach_deasserted_held(&keyMidOn); 00088 buttonBottom.attach_asserted_held(&keyLevelOff); 00089 buttonBottom.attach_deasserted_held(&keyBottonOn); 00090 00091 button1.setSampleFrequency(); 00092 button2.setSampleFrequency(); 00093 button3.setSampleFrequency(); 00094 button4.setSampleFrequency(); 00095 button5.setSampleFrequency(); 00096 buttonLeft.setSampleFrequency(); 00097 buttonLeft.setSamplesTillHeld(2); 00098 buttonMid.setSampleFrequency(); 00099 buttonMid.setSamplesTillHeld(2); 00100 buttonBottom.setSampleFrequency(); 00101 buttonBottom.setSamplesTillHeld(2); 00102 00103 //indicate we're ready 00104 pc.printf("%c",'5'); 00105 00106 while(1) { 00107 //do nothing forever 00108 } 00109 }
Generated on Tue Jul 26 2022 19:38:11 by
1.7.2