Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:1a3aa2e25db9, 2016-11-04 (annotated)
- 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?
User | Revision | Line number | New 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 | } |