standard keyboard with 10 keys

Dependencies:   USBDevice mbed

Fork of USBKeyboard_HelloWorld by Samuel Mokrani

Committer:
christianjc_09
Date:
Thu Jun 22 07:49:59 2017 +0000
Revision:
7:76ef20647568
Parent:
5:03a4211d593a
Text entry device

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samux 1:291a88a2c151 1 #include "mbed.h"
samux 1:291a88a2c151 2 #include "USBKeyboard.h"
christianjc_09 7:76ef20647568 3
samux 3:8b56768ceca2 4 USBKeyboard keyboard;
christianjc_09 7:76ef20647568 5
christianjc_09 7:76ef20647568 6 //Bus of buttons
christianjc_09 7:76ef20647568 7 BusInOut buttons(D2, D3, D4, D5, D6, D7, D8, D9, D10, D11);
christianjc_09 7:76ef20647568 8 BusOut myleds(LED1, LED2, LED3, LED4);
christianjc_09 7:76ef20647568 9 DigitalIn b1(D2),b2(D3),b3(D4),b4(D5),b5(D6),b6(D7),b7(D8),b8(D9),b9(D10),b10(D11);
christianjc_09 7:76ef20647568 10
christianjc_09 7:76ef20647568 11 int main() {
christianjc_09 7:76ef20647568 12 buttons.input();
christianjc_09 7:76ef20647568 13 buttons.mode(PullDown);
christianjc_09 7:76ef20647568 14 uint16_t p_bus = 0;
christianjc_09 7:76ef20647568 15 myleds = 4;
samux 1:291a88a2c151 16 while (1) {
christianjc_09 7:76ef20647568 17 //if the bus of buttons has changed, send a report
christianjc_09 7:76ef20647568 18
christianjc_09 7:76ef20647568 19 if (~buttons.read() != p_bus) {
christianjc_09 7:76ef20647568 20 p_bus = ~buttons.read();
christianjc_09 7:76ef20647568 21 if((b5 == 0)) //Left thumb pressed
christianjc_09 7:76ef20647568 22 {
christianjc_09 7:76ef20647568 23 myleds = 1;
christianjc_09 7:76ef20647568 24 while (1){
christianjc_09 7:76ef20647568 25
christianjc_09 7:76ef20647568 26 p_bus = ~buttons.read();
christianjc_09 7:76ef20647568 27 if (~buttons.read() != p_bus){break;}
christianjc_09 7:76ef20647568 28 }
christianjc_09 7:76ef20647568 29 myleds = 2;
christianjc_09 7:76ef20647568 30 if ((b5==0) && (b1==0))
christianjc_09 7:76ef20647568 31 {
christianjc_09 7:76ef20647568 32 keyboard.keyCode('w');
christianjc_09 7:76ef20647568 33 while ((b5==0) && (b1==0)){}
christianjc_09 7:76ef20647568 34 }
christianjc_09 7:76ef20647568 35 if ((b5==0) && (b2==0))
christianjc_09 7:76ef20647568 36 {
christianjc_09 7:76ef20647568 37 keyboard.keyCode('e');
christianjc_09 7:76ef20647568 38 while ((b5==0) && (b2==0)){}
christianjc_09 7:76ef20647568 39 }
christianjc_09 7:76ef20647568 40 if ((b5==0) && (b3==0))
christianjc_09 7:76ef20647568 41 {
christianjc_09 7:76ef20647568 42 keyboard.keyCode('r');
christianjc_09 7:76ef20647568 43 while ((b5==0) && (b3==0)){}
christianjc_09 7:76ef20647568 44 }
christianjc_09 7:76ef20647568 45 if ((b5==0) && (b4==0))
christianjc_09 7:76ef20647568 46 {
christianjc_09 7:76ef20647568 47 int count = 0;
christianjc_09 7:76ef20647568 48 while((b5==0)&&(b4==0)&&(count == 0))
christianjc_09 7:76ef20647568 49 {
christianjc_09 7:76ef20647568 50 if((b5==0)&&(b4==0)&&(b3==0))
christianjc_09 7:76ef20647568 51 {keyboard.keyCode('g');
christianjc_09 7:76ef20647568 52 while ((b5==0)&&(b4==0)&&(b3==0)){}
christianjc_09 7:76ef20647568 53 count++;}
christianjc_09 7:76ef20647568 54 }
christianjc_09 7:76ef20647568 55 wait(0.1);
christianjc_09 7:76ef20647568 56 if ((count == 0))
christianjc_09 7:76ef20647568 57 {
christianjc_09 7:76ef20647568 58 keyboard.keyCode('t');
christianjc_09 7:76ef20647568 59 }
christianjc_09 7:76ef20647568 60 }
christianjc_09 7:76ef20647568 61 if ((b5==0) && (b7==0))
christianjc_09 7:76ef20647568 62 {
christianjc_09 7:76ef20647568 63 keyboard.keyCode('y');
christianjc_09 7:76ef20647568 64 while ((b5==0) && (b7==0)){}
christianjc_09 7:76ef20647568 65 }
christianjc_09 7:76ef20647568 66 if ((b5==0) && (b8==0))
christianjc_09 7:76ef20647568 67 {
christianjc_09 7:76ef20647568 68 keyboard.keyCode('u');
christianjc_09 7:76ef20647568 69 while ((b5==0) && (b8==0)){}
christianjc_09 7:76ef20647568 70 }
christianjc_09 7:76ef20647568 71 if ((b5==0) && (b9==0))
christianjc_09 7:76ef20647568 72 {
christianjc_09 7:76ef20647568 73 keyboard.keyCode('i');
christianjc_09 7:76ef20647568 74 while ((b5==0) && (b9==0)){}
christianjc_09 7:76ef20647568 75 }
christianjc_09 7:76ef20647568 76 if ((b5==0) && (b10==0))
christianjc_09 7:76ef20647568 77 {
christianjc_09 7:76ef20647568 78 keyboard.keyCode('o');
christianjc_09 7:76ef20647568 79 while ((b5==0) && (b10==0)){}
christianjc_09 7:76ef20647568 80 }
christianjc_09 7:76ef20647568 81 if ((b5==0) && (b6==0))
christianjc_09 7:76ef20647568 82 {
christianjc_09 7:76ef20647568 83 keyboard.keyCode(' ');
christianjc_09 7:76ef20647568 84 while ((b5==0) && (b6==0)){}
christianjc_09 7:76ef20647568 85 }
christianjc_09 7:76ef20647568 86
christianjc_09 7:76ef20647568 87 }
christianjc_09 7:76ef20647568 88 else if (b6 == 0) //Right thumb pressed
christianjc_09 7:76ef20647568 89 {
christianjc_09 7:76ef20647568 90
christianjc_09 7:76ef20647568 91 myleds = 1;
christianjc_09 7:76ef20647568 92 while (1){
christianjc_09 7:76ef20647568 93 if (b6 == 1){
christianjc_09 7:76ef20647568 94 keyboard.keyCode('h');
christianjc_09 7:76ef20647568 95 break;
christianjc_09 7:76ef20647568 96 }
christianjc_09 7:76ef20647568 97 p_bus = ~buttons.read();
christianjc_09 7:76ef20647568 98 if (~buttons.read() != p_bus){break;}
christianjc_09 7:76ef20647568 99 }
christianjc_09 7:76ef20647568 100 myleds = 2;
christianjc_09 7:76ef20647568 101 if ((b6==0) && (b1==0))
christianjc_09 7:76ef20647568 102 {
christianjc_09 7:76ef20647568 103 keyboard.keyCode('z');
christianjc_09 7:76ef20647568 104 while ((b6==0) && (b1==0)){}
christianjc_09 7:76ef20647568 105 }
christianjc_09 7:76ef20647568 106 if ((b6==0) && (b2==0))
christianjc_09 7:76ef20647568 107 {
christianjc_09 7:76ef20647568 108 keyboard.keyCode('x');
christianjc_09 7:76ef20647568 109 while ((b6==0) && (b2==0)){}
christianjc_09 7:76ef20647568 110 }
christianjc_09 7:76ef20647568 111 if ((b6==0) && (b3==0))
christianjc_09 7:76ef20647568 112 {
christianjc_09 7:76ef20647568 113 keyboard.keyCode('c');
christianjc_09 7:76ef20647568 114 while ((b6==0) && (b3==0)){}
christianjc_09 7:76ef20647568 115 }
christianjc_09 7:76ef20647568 116 if ((b6==0) && (b4==0))
christianjc_09 7:76ef20647568 117 {
christianjc_09 7:76ef20647568 118 keyboard.keyCode('v');
christianjc_09 7:76ef20647568 119 while ((b6==0) && (b4==0)){}
christianjc_09 7:76ef20647568 120 }
christianjc_09 7:76ef20647568 121 if ((b6==0) && (b7==0))
christianjc_09 7:76ef20647568 122 {
christianjc_09 7:76ef20647568 123 int count2 = 0;
christianjc_09 7:76ef20647568 124 while((b6==0)&&(b7==0)&&(count2 == 0))
christianjc_09 7:76ef20647568 125 {
christianjc_09 7:76ef20647568 126 if((b6==0)&&(b7==0)&&(b8==0))
christianjc_09 7:76ef20647568 127 {keyboard.keyCode('h');
christianjc_09 7:76ef20647568 128 while ((b6==0)&&(b7==0)&&(b8==0)){}
christianjc_09 7:76ef20647568 129 count2++;}
christianjc_09 7:76ef20647568 130 }
christianjc_09 7:76ef20647568 131 wait(0.1);
christianjc_09 7:76ef20647568 132 if ((count2 == 0))
christianjc_09 7:76ef20647568 133 {
christianjc_09 7:76ef20647568 134 keyboard.keyCode('b');
christianjc_09 7:76ef20647568 135 }
christianjc_09 7:76ef20647568 136 }
christianjc_09 7:76ef20647568 137 if ((b6==0) && (b8==0))
christianjc_09 7:76ef20647568 138 {
christianjc_09 7:76ef20647568 139 keyboard.keyCode('n');
christianjc_09 7:76ef20647568 140 while ((b6==0) && (b8==0)){}
christianjc_09 7:76ef20647568 141 }
christianjc_09 7:76ef20647568 142 if ((b6==0) && (b9==0))
christianjc_09 7:76ef20647568 143 {
christianjc_09 7:76ef20647568 144 keyboard.keyCode('m');
christianjc_09 7:76ef20647568 145 while ((b6==0) && (b9==0)){}
christianjc_09 7:76ef20647568 146 }
christianjc_09 7:76ef20647568 147 if ((b6==0) && (b10==0))
christianjc_09 7:76ef20647568 148 {
christianjc_09 7:76ef20647568 149 keyboard.keyCode('q');
christianjc_09 7:76ef20647568 150 while ((b6==0) && (b10==0)){}
christianjc_09 7:76ef20647568 151 }
christianjc_09 7:76ef20647568 152 if ((b6==0) && (b5==0))
christianjc_09 7:76ef20647568 153 {
christianjc_09 7:76ef20647568 154 keyboard.keyCode(' ');
christianjc_09 7:76ef20647568 155 while ((b5==0) && (b6==0)){}
christianjc_09 7:76ef20647568 156 }
christianjc_09 7:76ef20647568 157
christianjc_09 7:76ef20647568 158 }
christianjc_09 7:76ef20647568 159 else if ((b5==0) && (b6==0)) //both thumb pressed
christianjc_09 7:76ef20647568 160 {
christianjc_09 7:76ef20647568 161 keyboard.keyCode(' ');
christianjc_09 7:76ef20647568 162 }
christianjc_09 7:76ef20647568 163 else //No thumb pressed
christianjc_09 7:76ef20647568 164 {
christianjc_09 7:76ef20647568 165 if(p_bus & 0x01)
christianjc_09 7:76ef20647568 166 {
christianjc_09 7:76ef20647568 167 keyboard.keyCode('a');
christianjc_09 7:76ef20647568 168 while (p_bus & 0x01){p_bus = ~buttons.read();}
christianjc_09 7:76ef20647568 169 }
christianjc_09 7:76ef20647568 170 if(p_bus & 0x02)
christianjc_09 7:76ef20647568 171 {
christianjc_09 7:76ef20647568 172 keyboard.keyCode('s');
christianjc_09 7:76ef20647568 173 while (p_bus & 0x02){p_bus = ~buttons.read();}
christianjc_09 7:76ef20647568 174 }
christianjc_09 7:76ef20647568 175 if(p_bus & 0x04)
christianjc_09 7:76ef20647568 176 {
christianjc_09 7:76ef20647568 177 keyboard.keyCode('d');
christianjc_09 7:76ef20647568 178 while (p_bus & 0x04){p_bus = ~buttons.read();}
christianjc_09 7:76ef20647568 179 }
christianjc_09 7:76ef20647568 180 if(p_bus & 0x08)
christianjc_09 7:76ef20647568 181 {
christianjc_09 7:76ef20647568 182 keyboard.keyCode('f');
christianjc_09 7:76ef20647568 183 while (p_bus & 0x08){p_bus = ~buttons.read();}
christianjc_09 7:76ef20647568 184 }
christianjc_09 7:76ef20647568 185 if(p_bus & 0x40)
christianjc_09 7:76ef20647568 186 {
christianjc_09 7:76ef20647568 187 keyboard.keyCode('j');
christianjc_09 7:76ef20647568 188 while (p_bus & 0x40){p_bus = ~buttons.read();}
christianjc_09 7:76ef20647568 189 }
christianjc_09 7:76ef20647568 190 if(p_bus & 0x80)
christianjc_09 7:76ef20647568 191 {
christianjc_09 7:76ef20647568 192 keyboard.keyCode('k');
christianjc_09 7:76ef20647568 193 while (p_bus & 0x80){p_bus = ~buttons.read();}
christianjc_09 7:76ef20647568 194 }
christianjc_09 7:76ef20647568 195 if(p_bus & 0x160)
christianjc_09 7:76ef20647568 196 {
christianjc_09 7:76ef20647568 197 keyboard.keyCode('l');
christianjc_09 7:76ef20647568 198 while (p_bus & 0x160){p_bus = ~buttons.read();}
christianjc_09 7:76ef20647568 199 }
christianjc_09 7:76ef20647568 200 if(p_bus & 0x320)
christianjc_09 7:76ef20647568 201 {
christianjc_09 7:76ef20647568 202 keyboard.keyCode('p');
christianjc_09 7:76ef20647568 203 while (p_bus & 0x320){p_bus = ~buttons.read();}
christianjc_09 7:76ef20647568 204 }
christianjc_09 7:76ef20647568 205
christianjc_09 7:76ef20647568 206 }
christianjc_09 7:76ef20647568 207 wait(0.01);
christianjc_09 7:76ef20647568 208 }
samux 1:291a88a2c151 209 }
samux 4:f0df6aae7147 210 }