Tim H / Mbed OS UsbKnob

Dependencies:   USBDevice

Committer:
Timmmm
Date:
Fri Nov 04 22:07:07 2016 +0000
Revision:
0:1a3aa2e25db9
Child:
1:0c3b6cc480b6
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Timmmm 0:1a3aa2e25db9 1 #include <mbed.h>
Timmmm 0:1a3aa2e25db9 2
Timmmm 0:1a3aa2e25db9 3 #include "USBControl.h"
Timmmm 0:1a3aa2e25db9 4 //#include "TSISensor.h"
Timmmm 0:1a3aa2e25db9 5
Timmmm 0:1a3aa2e25db9 6 #define VENDOR_ID 0x0004
Timmmm 0:1a3aa2e25db9 7 #define PRODUCT_ID 0x0307
Timmmm 0:1a3aa2e25db9 8 #define PRODUCT_RELEASE 0x0001
Timmmm 0:1a3aa2e25db9 9 #define PRODUCT_NAME "Knob"
Timmmm 0:1a3aa2e25db9 10 #define MANUFACTURER_NAME "Me"
Timmmm 0:1a3aa2e25db9 11 #define WINUSB_GUID "{a451588c-7230-4076-8456-9e544165e90c}"
Timmmm 0:1a3aa2e25db9 12
Timmmm 0:1a3aa2e25db9 13 class USBKnob : public USBControl
Timmmm 0:1a3aa2e25db9 14 {
Timmmm 0:1a3aa2e25db9 15 public:
Timmmm 0:1a3aa2e25db9 16 USBKnob() : USBControl(VENDOR_ID, PRODUCT_ID, PRODUCT_RELEASE, PRODUCT_NAME, MANUFACTURER_NAME, WINUSB_GUID)
Timmmm 0:1a3aa2e25db9 17 {
Timmmm 0:1a3aa2e25db9 18 }
Timmmm 0:1a3aa2e25db9 19
Timmmm 0:1a3aa2e25db9 20 void send(uint32_t fraction)
Timmmm 0:1a3aa2e25db9 21 {
Timmmm 0:1a3aa2e25db9 22 sendData(reinterpret_cast<uint8_t*>(&fraction), sizeof(fraction));
Timmmm 0:1a3aa2e25db9 23 }
Timmmm 0:1a3aa2e25db9 24 };
Timmmm 0:1a3aa2e25db9 25
Timmmm 0:1a3aa2e25db9 26 USBKnob usb;
Timmmm 0:1a3aa2e25db9 27 //TSISensor touch;
Timmmm 0:1a3aa2e25db9 28
Timmmm 0:1a3aa2e25db9 29 DigitalOut red(LED_RED);
Timmmm 0:1a3aa2e25db9 30 DigitalOut green(LED_GREEN);
Timmmm 0:1a3aa2e25db9 31 DigitalOut blue(LED_BLUE);
Timmmm 0:1a3aa2e25db9 32
Timmmm 0:1a3aa2e25db9 33 Serial pc(USBTX, USBRX);
Timmmm 0:1a3aa2e25db9 34
Timmmm 0:1a3aa2e25db9 35 AnalogIn knob(A0);
Timmmm 0:1a3aa2e25db9 36
Timmmm 0:1a3aa2e25db9 37 int main(int argc, char* argv[])
Timmmm 0:1a3aa2e25db9 38 {
Timmmm 0:1a3aa2e25db9 39 pc.baud(115200);
Timmmm 0:1a3aa2e25db9 40 pc.printf("\n\n\nmBed WinUSB Knob Example\n");
Timmmm 0:1a3aa2e25db9 41 red = 1;
Timmmm 0:1a3aa2e25db9 42 green = 1;
Timmmm 0:1a3aa2e25db9 43 blue = 1;
Timmmm 0:1a3aa2e25db9 44
Timmmm 0:1a3aa2e25db9 45 usb.connect();
Timmmm 0:1a3aa2e25db9 46
Timmmm 0:1a3aa2e25db9 47 // Touch sensor example (for FRDM-KL25Z).
Timmmm 0:1a3aa2e25db9 48 // for (;;)
Timmmm 0:1a3aa2e25db9 49 // {
Timmmm 0:1a3aa2e25db9 50 // float f = touch.readPercentage();
Timmmm 0:1a3aa2e25db9 51 // if (f != 0.0)
Timmmm 0:1a3aa2e25db9 52 // {
Timmmm 0:1a3aa2e25db9 53 // // Note that this blocks if no-one is reading it!
Timmmm 0:1a3aa2e25db9 54 // usb.send(0xFFFFFFFF * f);
Timmmm 0:1a3aa2e25db9 55 // green = !green;
Timmmm 0:1a3aa2e25db9 56 // wait_ms(10);
Timmmm 0:1a3aa2e25db9 57 // }
Timmmm 0:1a3aa2e25db9 58 // }
Timmmm 0:1a3aa2e25db9 59 for (;;)
Timmmm 0:1a3aa2e25db9 60 {
Timmmm 0:1a3aa2e25db9 61 // TODO: Only send when it changes.
Timmmm 0:1a3aa2e25db9 62 usb.send(0xFFFFFFFF * knob);
Timmmm 0:1a3aa2e25db9 63 wait_ms(100);
Timmmm 0:1a3aa2e25db9 64 }
Timmmm 0:1a3aa2e25db9 65 return 0;
Timmmm 0:1a3aa2e25db9 66 }