USBHID Hello World

Dependencies:   mbed USBDevice

main.cpp

Committer:
samux
Date:
2011-11-03
Revision:
1:0216a6726c1c
Parent:
0:30b74cf0e645
Child:
2:d07a799c6926

File content as of revision 1:0216a6726c1c:

#include "mbed.h"
#include "USBHID.h"

//We declare a USBHID device: it can send 1 byte and receive 1 byte
USBHID hid(1, 1);

//Two reports where will be stored values to send and received
HID_REPORT recv_report;
HID_REPORT send_report;

//Bus of leds
BusOut leds(LED1,LED2,LED3,LED4);

//Bus of buttons
BusInOut buttons(p21, p22, p23, p24);

int main(void) {
    uint8_t p_bus = 0;
    send_report.length = 1;

    while (1) {
        //If a data is received, update led bus
        if (hid.readNB(&recv_report)) {
            leds = recv_report.data[0];
        }

        //if the bus of buttons has changed, send a report
        if (buttons.read() != p_bus) {
            p_bus = buttons.read();
            send_report.data[0] = p_bus;
            hid.send(&send_report);
        }
        wait(0.01);
    }
}