Tengo un problemilla, pero antes de nada queria advertir que soy novato del todo en esto.
Estuve viendo el tema y probando y no consigo obtener un resultado satisfactorio con el conversor ADC (valores metidos con un potenciometro)
Probe con el firmware que hay en la pagina de un forero de aquí (redpic) y recogiendo los datos con un programa hecho visual basic en vez
de delphi como utiliza el. El programa en Visual Basic tambien me base en el codigo de otro forero (PICUSB en VB).
Bueno, en principio conseguí fácilmente (a pesar de lo novato que soy) encender un led y apagarlo con el programa en visual basic y leer la version devuelta por
el pic pero luego queria probar el conversor adc así que le meti un potenciometro consiguiendo valores pero varian normalmente entre tres valores sin mover
el potenciometro.
En el codigo del pic añadi:
...
setup_adc_ports(AN0_TO_AN3|VSS_VDD);
setup_adc( ADC_CLOCK_DIV_64 );
...
Y luego:
if(RecCommand==COMMAND_GETADC1){
set_adc_channel(0);
delay_ms(30);
value = Read_ADC();
usb_put_packet(1,value,1, USB_DTS_TOGGLE);
}
Luego con visual basic envio '3' (COMMAND_GETADC1) y ejecuto:
Call MPUSBRead(myInPipe, VarPtr(data(0)), 1, SentDataLength, 1000)
Y recibo datos pero no fijos, alternan por ejemplo entre 0,36,100 siempre igual y si muevo
el potenciometro cambia pero entre otros tres valores.
¿Que hago mal?