Oscar de Jesus Vasquez
/
USBHID_TestCase_LV
-----
Fork of USBHID_TestCase by
main.cpp@5:c18b39f0db84, 2014-11-25 (annotated)
- Committer:
- oscarvzfz
- Date:
- Tue Nov 25 17:44:52 2014 +0000
- Revision:
- 5:c18b39f0db84
- Parent:
- 4:a5fa0d7873b4
HID MBED LabView
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
samux | 2:1db77338562f | 1 | #include "mbed.h" |
samux | 2:1db77338562f | 2 | #include "USBHID.h" |
oscarvzfz | 5:c18b39f0db84 | 3 | |
oscarvzfz | 5:c18b39f0db84 | 4 | |
oscarvzfz | 5:c18b39f0db84 | 5 | //Definicion de los buffer de envio y recepcion |
oscarvzfz | 5:c18b39f0db84 | 6 | USBHID hid(8,8); |
oscarvzfz | 5:c18b39f0db84 | 7 | |
oscarvzfz | 5:c18b39f0db84 | 8 | //Reportes de envio |
oscarvzfz | 5:c18b39f0db84 | 9 | HID_REPORT recv_report; |
samux | 2:1db77338562f | 10 | HID_REPORT send_report; |
oscarvzfz | 5:c18b39f0db84 | 11 | |
oscarvzfz | 5:c18b39f0db84 | 12 | |
oscarvzfz | 5:c18b39f0db84 | 13 | //Definicion del bus para PORTS |
oscarvzfz | 5:c18b39f0db84 | 14 | BusInOut PA(p30,p29,p28,p27,p26,p25,p24,p23); |
oscarvzfz | 5:c18b39f0db84 | 15 | BusInOut PB(p5,p6,p7,p8,p9,p10,p11,p12); |
oscarvzfz | 5:c18b39f0db84 | 16 | |
oscarvzfz | 5:c18b39f0db84 | 17 | //Declaracion de los pines analogicos |
oscarvzfz | 5:c18b39f0db84 | 18 | AnalogIn ana0(p17); |
oscarvzfz | 5:c18b39f0db84 | 19 | AnalogIn ana1(p19); |
oscarvzfz | 5:c18b39f0db84 | 20 | AnalogIn ana2(p20); |
oscarvzfz | 5:c18b39f0db84 | 21 | |
oscarvzfz | 5:c18b39f0db84 | 22 | //Declaracion de PWM |
oscarvzfz | 5:c18b39f0db84 | 23 | PwmOut PWM0(LED1); |
oscarvzfz | 5:c18b39f0db84 | 24 | PwmOut PWM1(LED2); |
oscarvzfz | 5:c18b39f0db84 | 25 | PwmOut PWM2(LED3); |
oscarvzfz | 5:c18b39f0db84 | 26 | PwmOut PWM3(LED4); |
oscarvzfz | 4:a5fa0d7873b4 | 27 | |
oscarvzfz | 4:a5fa0d7873b4 | 28 | |
oscarvzfz | 5:c18b39f0db84 | 29 | //Variables para el seccionamiento de los analogicos |
oscarvzfz | 5:c18b39f0db84 | 30 | uint8_t an0div[2]; |
oscarvzfz | 5:c18b39f0db84 | 31 | uint8_t an1div[2]; |
oscarvzfz | 5:c18b39f0db84 | 32 | uint8_t an2div[2]; |
oscarvzfz | 5:c18b39f0db84 | 33 | |
oscarvzfz | 5:c18b39f0db84 | 34 | int main(void) { |
oscarvzfz | 5:c18b39f0db84 | 35 | |
oscarvzfz | 5:c18b39f0db84 | 36 | //Buffer para guardar los analogicos en lectura |
oscarvzfz | 5:c18b39f0db84 | 37 | uint16_t ana0buff = 0; |
oscarvzfz | 5:c18b39f0db84 | 38 | uint16_t ana1buff = 0; |
oscarvzfz | 5:c18b39f0db84 | 39 | uint16_t ana2buff = 0; |
oscarvzfz | 4:a5fa0d7873b4 | 40 | |
oscarvzfz | 5:c18b39f0db84 | 41 | send_report.length = 8; |
oscarvzfz | 5:c18b39f0db84 | 42 | recv_report.length = 8; |
oscarvzfz | 5:c18b39f0db84 | 43 | |
oscarvzfz | 5:c18b39f0db84 | 44 | while (1) |
oscarvzfz | 5:c18b39f0db84 | 45 | { |
oscarvzfz | 5:c18b39f0db84 | 46 | |
oscarvzfz | 5:c18b39f0db84 | 47 | |
oscarvzfz | 5:c18b39f0db84 | 48 | //Seleccioanador de caso para Bus IN/OUT en PA |
oscarvzfz | 5:c18b39f0db84 | 49 | if (hid.readNB(&recv_report)) |
oscarvzfz | 4:a5fa0d7873b4 | 50 | { |
oscarvzfz | 5:c18b39f0db84 | 51 | if(recv_report.data[0]==1) |
oscarvzfz | 5:c18b39f0db84 | 52 | { |
oscarvzfz | 5:c18b39f0db84 | 53 | PA.output(); |
oscarvzfz | 5:c18b39f0db84 | 54 | PA.write(recv_report.data[1]) ; |
oscarvzfz | 5:c18b39f0db84 | 55 | } |
oscarvzfz | 5:c18b39f0db84 | 56 | else |
oscarvzfz | 4:a5fa0d7873b4 | 57 | { |
oscarvzfz | 5:c18b39f0db84 | 58 | PA.input(); |
oscarvzfz | 5:c18b39f0db84 | 59 | send_report.data[0] = PA.read(); |
oscarvzfz | 5:c18b39f0db84 | 60 | hid.send(&send_report); |
oscarvzfz | 5:c18b39f0db84 | 61 | } |
oscarvzfz | 5:c18b39f0db84 | 62 | |
oscarvzfz | 5:c18b39f0db84 | 63 | |
oscarvzfz | 5:c18b39f0db84 | 64 | |
oscarvzfz | 5:c18b39f0db84 | 65 | if(recv_report.data[6]==1) |
oscarvzfz | 5:c18b39f0db84 | 66 | { |
oscarvzfz | 5:c18b39f0db84 | 67 | PB.output(); |
oscarvzfz | 5:c18b39f0db84 | 68 | PB.write(recv_report.data[7]) ; |
oscarvzfz | 5:c18b39f0db84 | 69 | } |
oscarvzfz | 5:c18b39f0db84 | 70 | else |
oscarvzfz | 5:c18b39f0db84 | 71 | { |
oscarvzfz | 5:c18b39f0db84 | 72 | PB.input(); |
oscarvzfz | 5:c18b39f0db84 | 73 | send_report.data[7] = PB.read(); |
oscarvzfz | 5:c18b39f0db84 | 74 | hid.send(&send_report); |
oscarvzfz | 5:c18b39f0db84 | 75 | } |
oscarvzfz | 5:c18b39f0db84 | 76 | |
oscarvzfz | 5:c18b39f0db84 | 77 | |
oscarvzfz | 5:c18b39f0db84 | 78 | |
oscarvzfz | 5:c18b39f0db84 | 79 | |
oscarvzfz | 5:c18b39f0db84 | 80 | } |
oscarvzfz | 5:c18b39f0db84 | 81 | //Lectura del 1er Analogico |
oscarvzfz | 5:c18b39f0db84 | 82 | if (ana0.read() != ana0buff) |
oscarvzfz | 5:c18b39f0db84 | 83 | { |
oscarvzfz | 5:c18b39f0db84 | 84 | ana0buff = ana0.read()*4096; |
oscarvzfz | 5:c18b39f0db84 | 85 | an0div[0]=ana0buff & 0xff; |
oscarvzfz | 5:c18b39f0db84 | 86 | an0div[1]=(ana0buff >> 8); |
oscarvzfz | 5:c18b39f0db84 | 87 | send_report.data[1] = an0div[0]; |
oscarvzfz | 5:c18b39f0db84 | 88 | send_report.data[2] = an0div[1]; |
oscarvzfz | 5:c18b39f0db84 | 89 | hid.send(&send_report); |
oscarvzfz | 5:c18b39f0db84 | 90 | } |
oscarvzfz | 5:c18b39f0db84 | 91 | |
oscarvzfz | 5:c18b39f0db84 | 92 | //Lectura del 2do Analogico |
oscarvzfz | 5:c18b39f0db84 | 93 | if (ana1.read() != ana1buff) |
oscarvzfz | 5:c18b39f0db84 | 94 | { |
oscarvzfz | 5:c18b39f0db84 | 95 | ana1buff = ana1.read()*4096; |
oscarvzfz | 5:c18b39f0db84 | 96 | an1div[0]=ana1buff & 0xff; |
oscarvzfz | 5:c18b39f0db84 | 97 | an1div[1]=(ana1buff >> 8); |
oscarvzfz | 5:c18b39f0db84 | 98 | send_report.data[3] = an1div[0]; |
oscarvzfz | 5:c18b39f0db84 | 99 | send_report.data[4] = an1div[1]; |
oscarvzfz | 5:c18b39f0db84 | 100 | hid.send(&send_report); |
samux | 2:1db77338562f | 101 | } |
oscarvzfz | 4:a5fa0d7873b4 | 102 | |
oscarvzfz | 5:c18b39f0db84 | 103 | //Lectura del 3er Analogico |
oscarvzfz | 5:c18b39f0db84 | 104 | if (ana2.read() != ana2buff) |
oscarvzfz | 5:c18b39f0db84 | 105 | { |
oscarvzfz | 5:c18b39f0db84 | 106 | ana2buff = ana2.read()*4096; |
oscarvzfz | 5:c18b39f0db84 | 107 | an2div[0]=ana2buff & 0xff; |
oscarvzfz | 5:c18b39f0db84 | 108 | an2div[1]=(ana2buff >> 8); |
oscarvzfz | 5:c18b39f0db84 | 109 | send_report.data[5] = an2div[0]; |
oscarvzfz | 5:c18b39f0db84 | 110 | send_report.data[6] = an2div[1]; |
oscarvzfz | 5:c18b39f0db84 | 111 | hid.send(&send_report); |
oscarvzfz | 5:c18b39f0db84 | 112 | } |
oscarvzfz | 5:c18b39f0db84 | 113 | |
oscarvzfz | 5:c18b39f0db84 | 114 | PWM0.write(float(recv_report.data[2])/255); |
oscarvzfz | 5:c18b39f0db84 | 115 | PWM1.write(float(recv_report.data[3])/255); |
oscarvzfz | 5:c18b39f0db84 | 116 | PWM2.write(float(recv_report.data[4])/255); |
oscarvzfz | 5:c18b39f0db84 | 117 | PWM3.write(float(recv_report.data[5])/255); |
oscarvzfz | 5:c18b39f0db84 | 118 | |
oscarvzfz | 5:c18b39f0db84 | 119 | } |
oscarvzfz | 5:c18b39f0db84 | 120 | |
samux | 0:53dfbb3eae55 | 121 | } |