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.
main.cpp@0:cbe01b678bd4, 2011-11-19 (annotated)
- Committer:
- ceri
- Date:
- Sat Nov 19 22:54:22 2011 +0000
- Revision:
- 0:cbe01b678bd4
just enough to work
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ceri | 0:cbe01b678bd4 | 1 | #include "mbed.h" |
ceri | 0:cbe01b678bd4 | 2 | #include "USBHID.h" |
ceri | 0:cbe01b678bd4 | 3 | /* |
ceri | 0:cbe01b678bd4 | 4 | DigitalOut myled1(LED1); |
ceri | 0:cbe01b678bd4 | 5 | DigitalOut myled2(LED2); |
ceri | 0:cbe01b678bd4 | 6 | DigitalOut myled3(LED3); |
ceri | 0:cbe01b678bd4 | 7 | DigitalOut myled4(LED4); |
ceri | 0:cbe01b678bd4 | 8 | */ |
ceri | 0:cbe01b678bd4 | 9 | BusOut leds(LED1,LED2,LED3,LED4); |
ceri | 0:cbe01b678bd4 | 10 | AnalogIn PortA (p20); |
ceri | 0:cbe01b678bd4 | 11 | AnalogIn PortB (p19); |
ceri | 0:cbe01b678bd4 | 12 | AnalogIn PortC (p18); |
ceri | 0:cbe01b678bd4 | 13 | AnalogIn PortD (p17); |
ceri | 0:cbe01b678bd4 | 14 | |
ceri | 0:cbe01b678bd4 | 15 | int a, x, t, k; |
ceri | 0:cbe01b678bd4 | 16 | int An_a, An_b, An_c, An_d; |
ceri | 0:cbe01b678bd4 | 17 | |
ceri | 0:cbe01b678bd4 | 18 | #define HID_MessageSize 18 |
ceri | 0:cbe01b678bd4 | 19 | |
ceri | 0:cbe01b678bd4 | 20 | //This report will contain data to be sent |
ceri | 0:cbe01b678bd4 | 21 | HID_REPORT send_report; |
ceri | 0:cbe01b678bd4 | 22 | HID_REPORT recv; |
ceri | 0:cbe01b678bd4 | 23 | |
ceri | 0:cbe01b678bd4 | 24 | //We declare a USBHID device |
ceri | 0:cbe01b678bd4 | 25 | USBHID hid_A (HID_MessageSize, HID_MessageSize,0xcbc,0x123,5); // In Length, Out Length, VID, PID, Release |
ceri | 0:cbe01b678bd4 | 26 | //USBHID hid_B (HID_MessageSize, HID_MessageSize,0xcbc,0x123,6); |
ceri | 0:cbe01b678bd4 | 27 | |
ceri | 0:cbe01b678bd4 | 28 | |
ceri | 0:cbe01b678bd4 | 29 | // Strings are in "USBDevice.cpp" |
ceri | 0:cbe01b678bd4 | 30 | |
ceri | 0:cbe01b678bd4 | 31 | |
ceri | 0:cbe01b678bd4 | 32 | //BusOut leds(LED1,LED2,LED3,LED4); |
ceri | 0:cbe01b678bd4 | 33 | |
ceri | 0:cbe01b678bd4 | 34 | int main(void) { |
ceri | 0:cbe01b678bd4 | 35 | |
ceri | 0:cbe01b678bd4 | 36 | //Fill the report |
ceri | 0:cbe01b678bd4 | 37 | for (int i = 0; i < HID_MessageSize; i++) |
ceri | 0:cbe01b678bd4 | 38 | send_report.data[i] = i; |
ceri | 0:cbe01b678bd4 | 39 | send_report.length = HID_MessageSize; |
ceri | 0:cbe01b678bd4 | 40 | |
ceri | 0:cbe01b678bd4 | 41 | //jjhhggrr |
ceri | 0:cbe01b678bd4 | 42 | |
ceri | 0:cbe01b678bd4 | 43 | while (1) |
ceri | 0:cbe01b678bd4 | 44 | { |
ceri | 0:cbe01b678bd4 | 45 | //Send the report |
ceri | 0:cbe01b678bd4 | 46 | |
ceri | 0:cbe01b678bd4 | 47 | // if (hid_A.readNB(&recv)) |
ceri | 0:cbe01b678bd4 | 48 | { |
ceri | 0:cbe01b678bd4 | 49 | leds = recv.data[0]; |
ceri | 0:cbe01b678bd4 | 50 | send_report.data[1]++; |
ceri | 0:cbe01b678bd4 | 51 | |
ceri | 0:cbe01b678bd4 | 52 | // just a test to see how fast send could be .. |
ceri | 0:cbe01b678bd4 | 53 | |
ceri | 0:cbe01b678bd4 | 54 | for (x=0; x<200;x++) |
ceri | 0:cbe01b678bd4 | 55 | { |
ceri | 0:cbe01b678bd4 | 56 | |
ceri | 0:cbe01b678bd4 | 57 | An_a = PortA.read_u16(); |
ceri | 0:cbe01b678bd4 | 58 | An_b = PortB.read_u16(); |
ceri | 0:cbe01b678bd4 | 59 | An_c = PortC.read_u16(); |
ceri | 0:cbe01b678bd4 | 60 | An_d = PortD.read_u16(); |
ceri | 0:cbe01b678bd4 | 61 | |
ceri | 0:cbe01b678bd4 | 62 | send_report.data[3] = An_a & 0xff; |
ceri | 0:cbe01b678bd4 | 63 | send_report.data[2] = An_a >>8; |
ceri | 0:cbe01b678bd4 | 64 | |
ceri | 0:cbe01b678bd4 | 65 | send_report.data[5] = An_b & 0xff; |
ceri | 0:cbe01b678bd4 | 66 | send_report.data[4] = An_b >>8; |
ceri | 0:cbe01b678bd4 | 67 | |
ceri | 0:cbe01b678bd4 | 68 | send_report.data[7] = An_c & 0xff; |
ceri | 0:cbe01b678bd4 | 69 | send_report.data[6] = An_c >>8; |
ceri | 0:cbe01b678bd4 | 70 | |
ceri | 0:cbe01b678bd4 | 71 | send_report.data[9] = An_d & 0xff; |
ceri | 0:cbe01b678bd4 | 72 | send_report.data[8] = An_d >>8;; |
ceri | 0:cbe01b678bd4 | 73 | |
ceri | 0:cbe01b678bd4 | 74 | send_report.data[11] = k & 0xff; |
ceri | 0:cbe01b678bd4 | 75 | send_report.data[10] = k >>8; |
ceri | 0:cbe01b678bd4 | 76 | |
ceri | 0:cbe01b678bd4 | 77 | k++; |
ceri | 0:cbe01b678bd4 | 78 | |
ceri | 0:cbe01b678bd4 | 79 | send_report.data[16] = x; |
ceri | 0:cbe01b678bd4 | 80 | hid_A.send(&send_report); |
ceri | 0:cbe01b678bd4 | 81 | } |
ceri | 0:cbe01b678bd4 | 82 | |
ceri | 0:cbe01b678bd4 | 83 | |
ceri | 0:cbe01b678bd4 | 84 | } |
ceri | 0:cbe01b678bd4 | 85 | send_report.data[HID_MessageSize-2]++; |
ceri | 0:cbe01b678bd4 | 86 | hid_A.send(&send_report); |
ceri | 0:cbe01b678bd4 | 87 | wait(0.5); |
ceri | 0:cbe01b678bd4 | 88 | } |
ceri | 0:cbe01b678bd4 | 89 | } |