Yihui Xiong
/
Arch_USB_Keyboard_Ex2
Automatic Input USB Keyboard triggered by CapsLock.
main.cpp@0:6224f249ab23, 2013-12-04 (annotated)
- Committer:
- yihui
- Date:
- Wed Dec 04 08:43:51 2013 +0000
- Revision:
- 0:6224f249ab23
initial
Who changed what in which revision?
User | Revision | Line number | New 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 | } |