Hola buen dia a todos.
Estuve intentado hacer un pequeño programa que detecte un boton y mande el estado de este por midi.
Me ayude un poco por los códigos que aparecen en este foro, tabn busque como configurar los fuses y al
final me quedo el siguiente codigo.
Lo grabo y cuando lo conecto a la compu no pasa absolutamente nada
primero quise probar sin conectar el boton ni nada pero la compu no me lo reconoce como dispositivo midi.
seguramente me este equivocando en alguna cosa fácil que no me doy cuenta. alguna ayuda?
tengo un clock de 20mhz conectado y la coneccion del pic al usb me guié por una foto que encontré en Internet.
muchas gracias
Estuve intentado hacer un pequeño programa que detecte un boton y mande el estado de este por midi.
Me ayude un poco por los códigos que aparecen en este foro, tabn busque como configurar los fuses y al
final me quedo el siguiente codigo.
Lo grabo y cuando lo conecto a la compu no pasa absolutamente nada
primero quise probar sin conectar el boton ni nada pero la compu no me lo reconoce como dispositivo midi.
seguramente me este equivocando en alguna cosa fácil que no me doy cuenta. alguna ayuda?
tengo un clock de 20mhz conectado y la coneccion del pic al usb me guié por una foto que encontré en Internet.
Código:
#include <18f4550.h>
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#fuses NOMCLR //Habilita MCLR/RE3 como entrada
#use delay(clock=48000000)
#DEFINE USB_HID_DEVICE FALSE
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1 for IN bulk/interrupt transfers
#define USB_EP2_RX_ENABLE USB_ENABLE_BULK //turn on EP1 for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE 64 //size to allocate for the tx endpoint 1 buffer
#define USB_EP2_RX_SIZE 64 //size to allocate for the rx endpoint 1 buffer
#include <pic18_usb.h>
#include <.\include\midi7.h> //USB Configuration and Device descriptors for this UBS device
#include <usb.c> //handles usb setup tokens and get descriptor reports
void main(void)
{
SET_TRIS_D(0xFF);
int8 botones=0;
int8 estado=0;
while(TRUE){
int8 out_data[4];
estado= input_state(pin_D1);
if (estado==0){
out_data[1] = 0x90; //Note on
out_data[0]= out_data[1]>>4;
out_data[2] = 0x00; // Nota 0
out_data[3] = 0x7F; // Volumen 127
usb_put_packet(1,out_data,4,USB_DTS_TOGGLE);
delay_ms(6);
}
if (estado==1){
out_data[1] = 0x90; //Note on
out_data[0]= out_data[1]>>4;
out_data[2] = 0x00; // Nota 0
out_data[3] = 0x00; // Volumen 0
usb_put_packet(1,out_data,4,USB_DTS_TOGGLE);
delay_ms(6);
}
}
}
muchas gracias
Última edición: