-----

Dependencies:   USBDevice mbed

Fork of USBHID_TestCase by Samuel Mokrani

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?

UserRevisionLine numberNew 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 }