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: