Automatic Input USB Keyboard triggered by CapsLock.

Dependencies:   USBDevice mbed

Committer:
yihui
Date:
Wed Dec 04 08:43:51 2013 +0000
Revision:
0:6224f249ab23
initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yihui 0:6224f249ab23 1 #include "mbed.h"
yihui 0:6224f249ab23 2 #include "USBKeyboard.h"
yihui 0:6224f249ab23 3
yihui 0:6224f249ab23 4 //LED1: NUM_LOCK, LED2: CAPS_LOCK, LED3: SCROLL_LOCK
yihui 0:6224f249ab23 5 BusOut leds(LED1, LED2, LED3);
yihui 0:6224f249ab23 6 USBKeyboard keyboard;
yihui 0:6224f249ab23 7
yihui 0:6224f249ab23 8 int main(void) {
yihui 0:6224f249ab23 9 uint8_t caps; // status of CapsLock
yihui 0:6224f249ab23 10
yihui 0:6224f249ab23 11 while (!keyboard.configured()) { // wait until keyboard is configured
yihui 0:6224f249ab23 12 }
yihui 0:6224f249ab23 13
yihui 0:6224f249ab23 14 while (1) {
yihui 0:6224f249ab23 15 leds = keyboard.lockStatus();
yihui 0:6224f249ab23 16 caps = keyboard.lockStatus() & 0x2;
yihui 0:6224f249ab23 17
yihui 0:6224f249ab23 18 // wait until CapsLock is pressed
yihui 0:6224f249ab23 19 while ((keyboard.lockStatus() & 0x2) == caps) {
yihui 0:6224f249ab23 20 leds = keyboard.lockStatus();
yihui 0:6224f249ab23 21 }
yihui 0:6224f249ab23 22
yihui 0:6224f249ab23 23 if (!caps) {
yihui 0:6224f249ab23 24 keyboard.keyCode(KEY_CAPS_LOCK); // lowercase input
yihui 0:6224f249ab23 25 }
yihui 0:6224f249ab23 26
yihui 0:6224f249ab23 27 // Automatic input
yihui 0:6224f249ab23 28 keyboard.keyCode('r', 0x08); // win + r
yihui 0:6224f249ab23 29 wait(0.1);
yihui 0:6224f249ab23 30 keyboard.puts("iexplore http://seeedstudio.com\n\n");
yihui 0:6224f249ab23 31 }
yihui 0:6224f249ab23 32 }