USB keyboard

Dependencies:   USBDevice mbed

Committer:
bruce_0205
Date:
Mon Nov 06 08:26:12 2017 +0000
Revision:
0:429b3e5d547d
keyboard

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bruce_0205 0:429b3e5d547d 1 #include "mbed.h"
bruce_0205 0:429b3e5d547d 2 #include "USBKeyboard.h"
bruce_0205 0:429b3e5d547d 3
bruce_0205 0:429b3e5d547d 4 //LED1: NUM_LOCK, LED2: CAPS_LOCK, LED3: SCROLL_LOCK
bruce_0205 0:429b3e5d547d 5 BusOut leds(LED1, LED2, LED3);
bruce_0205 0:429b3e5d547d 6 DigitalIn button_SW2(PTC1); // Configure SW2 pin as input
bruce_0205 0:429b3e5d547d 7 DigitalIn button_SW3(PTB17); // Configure SW3 pin as input
bruce_0205 0:429b3e5d547d 8 #define SW2_printf 'S' // set SW2 button input key
bruce_0205 0:429b3e5d547d 9 #define SW3_printf 'D' // set SW2 button input key
bruce_0205 0:429b3e5d547d 10 USBKeyboard keyboard;
bruce_0205 0:429b3e5d547d 11
bruce_0205 0:429b3e5d547d 12 int main() {
bruce_0205 0:429b3e5d547d 13 int buttonPressedCount_SW2 = 0;
bruce_0205 0:429b3e5d547d 14 int buttonPressedCount_SW3 = 0;
bruce_0205 0:429b3e5d547d 15
bruce_0205 0:429b3e5d547d 16 while (!keyboard.configured()) { // wait until keyboard is configured
bruce_0205 0:429b3e5d547d 17 }
bruce_0205 0:429b3e5d547d 18
bruce_0205 0:429b3e5d547d 19 while (1) {
bruce_0205 0:429b3e5d547d 20 leds = keyboard.lockStatus();
bruce_0205 0:429b3e5d547d 21
bruce_0205 0:429b3e5d547d 22 if (button_SW2.read()) {
bruce_0205 0:429b3e5d547d 23 buttonPressedCount_SW2++;
bruce_0205 0:429b3e5d547d 24 if (2 == buttonPressedCount_SW2) { // when button is pressed about 0.02s
bruce_0205 0:429b3e5d547d 25 keyboard._putc(SW2_printf); // send SW2 key
bruce_0205 0:429b3e5d547d 26 }
bruce_0205 0:429b3e5d547d 27 } else {
bruce_0205 0:429b3e5d547d 28 buttonPressedCount_SW2 = 0;
bruce_0205 0:429b3e5d547d 29 }
bruce_0205 0:429b3e5d547d 30
bruce_0205 0:429b3e5d547d 31 if (button_SW3.read()) {
bruce_0205 0:429b3e5d547d 32 buttonPressedCount_SW3++;
bruce_0205 0:429b3e5d547d 33 if (2 == buttonPressedCount_SW3) { // when button is pressed about 0.02s
bruce_0205 0:429b3e5d547d 34 keyboard._putc(SW3_printf); // send SW3 key
bruce_0205 0:429b3e5d547d 35 }
bruce_0205 0:429b3e5d547d 36 } else {
bruce_0205 0:429b3e5d547d 37 buttonPressedCount_SW3 = 0;
bruce_0205 0:429b3e5d547d 38 }
bruce_0205 0:429b3e5d547d 39 wait(0.01);
bruce_0205 0:429b3e5d547d 40 }
bruce_0205 0:429b3e5d547d 41 }