summaryrefslogtreecommitdiffstats
path: root/keyboard/mbed_onekey/main.cpp
blob: 1df940aa9781045a922015ec3cc729a8ef066246 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "mbed.h"
#include "HIDKeyboard.h"
#include "debug.h"
#include "timer.h"
 
/*
//#define DEBUG 
#ifdef DEBUG
Serial ser(UART_TX, UART_RX);
#define dprintf(fmt, ...)	    ser.printf(fmt, ## __VA_ARGS__)
#else
#define dprintf(fmt, ...)
#endif
*/


// button and LEDs
DigitalIn isp(P0_1);
DigitalOut led_red(P0_20);
DigitalOut led_green(P0_21);

//USBKeyboard
HIDKeyboard keyboard;
 

int main(void) {
    //isp.mode(PullUp);
    //led_red = 0;
    //led_green = 0;
    debug_enable = true;
    dprintf("HIDKeyboard:\r\n");

    timer_init();
    xprintf("timer: %i\r\n", timer_read());

    report_keyboard_t report = { 2, 0, 4, }; //a
    report_keyboard_t report_off = { 0 };

    bool last_isp = isp;
    uint32_t last_timer;
    while (1) {
        //keyboard.mediaControl(KEY_VOLUME_DOWN);
        //keyboard.printf("Hello World from Mbed\r\n");
        //keyboard.keyCode('s', KEY_CTRL);
        //keyboard.keyCode(KEY_CAPS_LOCK);

        //led_green = !led_green;
        //leds = keyboard.lockStatus();
        //ser.putc(ser.getc());

        if (last_isp == isp) continue;
        if (isp == 0) {
            led_red = 0;    // on
    xprintf("timer: %i\r\n", timer_read32());
    xprintf("diff: %i\r\n", timer_elapsed32(last_timer));
            //keyboard.sendReport(report);
        } else {
            led_red = 1;    // off
            //keyboard.sendReport(report_off);
        }
        last_isp = isp;
        last_timer = timer_read();
        //led_green = !led_green;
        //wait(0.5);
    }
}