ADC Niose test Connect four analog signals to your MBED. and then run the Windows app. The four traces are displayed on an oscilloscope like display. I have used a USB HID DEVICE link, so connections to D+, D- are required. The MBED code is otherwise quite basic, So you can modify it to your own test needs. Additionaly, there is a 16 bit count value, in my MBED code Mainly to test if MSB & LSB are correct.

Dependencies:   mbed

Committer:
ceri
Date:
Sat Nov 19 22:54:22 2011 +0000
Revision:
0:cbe01b678bd4
just enough to work

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ceri 0:cbe01b678bd4 1 /* USBKeyboard.h */
ceri 0:cbe01b678bd4 2 /* USB device example: Standard keyboard */
ceri 0:cbe01b678bd4 3 /* Copyright (c) 2011 ARM Limited. All rights reserved. */
ceri 0:cbe01b678bd4 4
ceri 0:cbe01b678bd4 5 #ifndef USBKEYBOARD_H
ceri 0:cbe01b678bd4 6 #define USBKEYBOARD_H
ceri 0:cbe01b678bd4 7
ceri 0:cbe01b678bd4 8 #include "USBHID.h"
ceri 0:cbe01b678bd4 9 #include "Stream.h"
ceri 0:cbe01b678bd4 10
ceri 0:cbe01b678bd4 11
ceri 0:cbe01b678bd4 12 enum MEDIA_KEY
ceri 0:cbe01b678bd4 13 {
ceri 0:cbe01b678bd4 14 KEY_NEXT_TRACK, /*!< next Track Button */
ceri 0:cbe01b678bd4 15 KEY_PREVIOUS_TRACK, /*!< Previous track Button */
ceri 0:cbe01b678bd4 16 KEY_STOP, /*!< Stop Button */
ceri 0:cbe01b678bd4 17 KEY_PLAY_PAUSE, /*!< Play/Pause Button */
ceri 0:cbe01b678bd4 18 KEY_MUTE, /*!< Mute Button */
ceri 0:cbe01b678bd4 19 KEY_VOLUME_UP, /*!< Volume Up Button */
ceri 0:cbe01b678bd4 20 KEY_VOLUME_DOWN, /*!< Volume Down Button */
ceri 0:cbe01b678bd4 21 };
ceri 0:cbe01b678bd4 22
ceri 0:cbe01b678bd4 23 enum FUNCTION_KEY
ceri 0:cbe01b678bd4 24 {
ceri 0:cbe01b678bd4 25 KEY_F1 = 128, /* F1 key */
ceri 0:cbe01b678bd4 26 KEY_F2, /* F2 key */
ceri 0:cbe01b678bd4 27 KEY_F3, /* F3 key */
ceri 0:cbe01b678bd4 28 KEY_F4, /* F4 key */
ceri 0:cbe01b678bd4 29 KEY_F5, /* F5 key */
ceri 0:cbe01b678bd4 30 KEY_F6, /* F6 key */
ceri 0:cbe01b678bd4 31 KEY_F7, /* F7 key */
ceri 0:cbe01b678bd4 32 KEY_F8, /* F8 key */
ceri 0:cbe01b678bd4 33 KEY_F9, /* F9 key */
ceri 0:cbe01b678bd4 34 KEY_F10, /* F10 key */
ceri 0:cbe01b678bd4 35 KEY_F11, /* F11 key */
ceri 0:cbe01b678bd4 36 KEY_F12, /* F12 key */
ceri 0:cbe01b678bd4 37 KEY_PRINT_SCREEN, /* Print Screen key */
ceri 0:cbe01b678bd4 38 KEY_INSERT, /* Insert key */
ceri 0:cbe01b678bd4 39 KEY_HOME, /* Home key */
ceri 0:cbe01b678bd4 40 KEY_PAGE_UP, /* Page Up key */
ceri 0:cbe01b678bd4 41 KEY_PAGE_DOWN, /* Page Down key */
ceri 0:cbe01b678bd4 42 };
ceri 0:cbe01b678bd4 43
ceri 0:cbe01b678bd4 44 /** USB device: a keyboard
ceri 0:cbe01b678bd4 45 *
ceri 0:cbe01b678bd4 46 * Warning: you can only instantiate one instance of a USB device: USBMouse, USBKeyboard, USBAbsMouse, USBMouseKeyboard, or USBAbsMouseKeyboard.
ceri 0:cbe01b678bd4 47 *
ceri 0:cbe01b678bd4 48 * Example:
ceri 0:cbe01b678bd4 49 * @code
ceri 0:cbe01b678bd4 50 *
ceri 0:cbe01b678bd4 51 * #include "mbed.h"
ceri 0:cbe01b678bd4 52 * #include "USBKeyboard.h"
ceri 0:cbe01b678bd4 53 *
ceri 0:cbe01b678bd4 54 * USBKeyboard key;
ceri 0:cbe01b678bd4 55 *
ceri 0:cbe01b678bd4 56 * int main(void)
ceri 0:cbe01b678bd4 57 * {
ceri 0:cbe01b678bd4 58 * while (1)
ceri 0:cbe01b678bd4 59 * {
ceri 0:cbe01b678bd4 60 * key.puts("Hello World\r\n");
ceri 0:cbe01b678bd4 61 * wait(1);
ceri 0:cbe01b678bd4 62 * }
ceri 0:cbe01b678bd4 63 * }
ceri 0:cbe01b678bd4 64 *
ceri 0:cbe01b678bd4 65 * @endcode
ceri 0:cbe01b678bd4 66 */
ceri 0:cbe01b678bd4 67 class USBKeyboard: public USBHID, public Stream
ceri 0:cbe01b678bd4 68 {
ceri 0:cbe01b678bd4 69 public:
ceri 0:cbe01b678bd4 70
ceri 0:cbe01b678bd4 71 /**
ceri 0:cbe01b678bd4 72 * Constructor
ceri 0:cbe01b678bd4 73 *
ceri 0:cbe01b678bd4 74 * @param vendor_id Your vendor_id (default: 0x1234)
ceri 0:cbe01b678bd4 75 * @param product_id Your product_id (default: 0x0001)
ceri 0:cbe01b678bd4 76 * @param product_release Your preoduct_release (default: 0x0001)
ceri 0:cbe01b678bd4 77 *
ceri 0:cbe01b678bd4 78 */
ceri 0:cbe01b678bd4 79 USBKeyboard(uint16_t vendor_id = 0x1234, uint16_t product_id = 0x0003, uint16_t product_release = 0x0001): USBHID(vendor_id, product_id, product_release){};
ceri 0:cbe01b678bd4 80
ceri 0:cbe01b678bd4 81 /**
ceri 0:cbe01b678bd4 82 * To send a character defined by a modifier(CTRL, SHIFT, ALT) and the key
ceri 0:cbe01b678bd4 83 *
ceri 0:cbe01b678bd4 84 * @code
ceri 0:cbe01b678bd4 85 * //To send CTRL + s (save)
ceri 0:cbe01b678bd4 86 * keyboard.keyCode('s', KEY_CTRL);
ceri 0:cbe01b678bd4 87 * @endcode
ceri 0:cbe01b678bd4 88 *
ceri 0:cbe01b678bd4 89 * @param modifier bit 0: CTRL, bit 1: SHIFT, bit 2: ALT (default: 0)
ceri 0:cbe01b678bd4 90 * @param key character to send
ceri 0:cbe01b678bd4 91 * @returns true if there is no error, false otherwise
ceri 0:cbe01b678bd4 92 */
ceri 0:cbe01b678bd4 93 bool keyCode(uint8_t key, uint8_t modifier = 0);
ceri 0:cbe01b678bd4 94
ceri 0:cbe01b678bd4 95 /**
ceri 0:cbe01b678bd4 96 * Send a character
ceri 0:cbe01b678bd4 97 *
ceri 0:cbe01b678bd4 98 * @param c character to be sent
ceri 0:cbe01b678bd4 99 * @returns true if there is no error, false otherwise
ceri 0:cbe01b678bd4 100 */
ceri 0:cbe01b678bd4 101 virtual int _putc(int c);
ceri 0:cbe01b678bd4 102
ceri 0:cbe01b678bd4 103 /**
ceri 0:cbe01b678bd4 104 * Control media keys
ceri 0:cbe01b678bd4 105 *
ceri 0:cbe01b678bd4 106 * @param key media key pressed (KEY_NEXT_TRACK, KEY_PREVIOUS_TRACK, KEY_STOP, KEY_PLAY_PAUSE, KEY_MUTE, KEY_VOLUME_UP, KEY_VOLUME_DOWN)
ceri 0:cbe01b678bd4 107 * @returns true if there is no error, false otherwise
ceri 0:cbe01b678bd4 108 */
ceri 0:cbe01b678bd4 109 bool mediaControl(MEDIA_KEY key);
ceri 0:cbe01b678bd4 110
ceri 0:cbe01b678bd4 111 /**
ceri 0:cbe01b678bd4 112 * To define the report descriptor. Warning: this method has to store the length of the report descriptor in reportLength.
ceri 0:cbe01b678bd4 113 *
ceri 0:cbe01b678bd4 114 * @returns pointer to the report descriptor
ceri 0:cbe01b678bd4 115 */
ceri 0:cbe01b678bd4 116 virtual uint8_t * reportDesc();
ceri 0:cbe01b678bd4 117
ceri 0:cbe01b678bd4 118 private:
ceri 0:cbe01b678bd4 119 //dummy otherwise it doesn,t compile (we must define all methods of an abstract class)
ceri 0:cbe01b678bd4 120 virtual int _getc() { return -1;}
ceri 0:cbe01b678bd4 121 };
ceri 0:cbe01b678bd4 122
ceri 0:cbe01b678bd4 123 #endif
ceri 0:cbe01b678bd4 124
ceri 0:cbe01b678bd4 125