Ah porque en este código no va esto?
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(A)
Me lo compila bien y todo pero no lo detecta la pc, que puede ser?
Aparecia un define en rojo... lo escribi en minusculas y quedo bien.
Y yo quiero utilizar un cristal de 4Mhz y deshabilitar el pin MCLR, esta bien esto que hice?:
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NOMCLR,NODEBUG,USBDIV,PLL1,VREGEN
Adjunto lo que tengo hecho a ver si detectas los problemas
#include <18F2550.h>
#device ADC=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NOMCLR,NODEBUG,USBDIV,PLL1,VREGEN //~~~ 4MHZ OSCILLATOR CONFIGS ~~~//
#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 <midi7.h> //USB Configuration and Device descriptors for this UBS device
#include <usb.c> //handles usb setup tokens and get descriptor reports
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#use fast_io(A)
int a1,a2,b1,b2,c1,c2,d1,d2,e1,e2; //variables para guardar
int f1,f2,g1,g2,h1,h2; //cada entrada, y el valor anterior
int envia[4]; //buffer para enviar las notas
void envia_nota()
{ usb_put_packet(1,envia,4,USB_DTS_TOGGLE);
}
void main(void)
{ a1=a2=b1=b2=c1=c2=d1=d2=e1=e2=f1=f2=g1=g2=h1=h2=0;
envia[1]=0x90;
envia[0]=envia[1]>>4;
setup_adc_ports(ALL_ANALOG); //todas las entradas analogicas
setup_adc(ADC_CLOCK_DIV_16); //dividimos el reloj por 16, para tener
//un tiempo de conversion de 1.33us
for(;
{ set_adc_channel(0);
a2=a1;
delay_us(3);
a1=read_adc();
if(a2>a1)
{ envia[2]=0x00; //nota 0
envia[3]=(a2/2);
envia_nota();
}
set_adc_channel(1);
b2=b1;
delay_us(3);
b1=read_adc();
if(b2>b1)
{ envia[2]=0x01; //nota 1
envia[3]=(b2/2);
envia_nota();
}
set_adc_channel(2);
c2=c1;
delay_us(3);
c1=read_adc();
if(c2>c1)
{ envia[2]=0x02; //nota 2
envia[3]=(c2/2);
envia_nota();
}
set_adc_channel(3);
d2=d1;
delay_us(3);
d1=read_adc();
if(d2>d1)
{ envia[2]=0x03; //nota 3
envia[3]=(d2/2);
envia_nota();
}
set_adc_channel(4);
e2=e1;
delay_us(3);
e1=read_adc();
if(e2>e1)
{ envia[2]=0x04; //nota 4
envia[3]=(e2/2);
envia_nota();
}
set_adc_channel(8);
f2=f1;
delay_us(3);
f1=read_adc();
if(f2>f1)
{ envia[2]=0x05; //nota 5
envia[3]=(f2/2);
envia_nota();
}
set_adc_channel(9);
g2=g1;
delay_us(3);
g1=read_adc();
if(g2>g1)
{ envia[2]=0x06; //nota 6
envia[3]=(g2/2);
envia_nota();
}
set_adc_channel(10);
h2=h1;
delay_us(3);
h1=read_adc();
if(h2>h1)
{ envia[2]=0x07; //nota 7
envia[3]=(h2/2);
envia_nota();
}
}
}