Hola chicos otra vez.... No me da la instrucción (que raro!!!) tengo una dificultad, dificultosa jejejeje! es lo siguiente, estoy tomando un dato analogico desde los ADC de un pic, la cuestión es que debo de llevar ese dato a uno con el mismo valor pero de mayor longitud, es decir de 16 bits, estoy trabajando el ADC con 10 bits.... Ustedes se preguntarán pero para que hacer esto?
Bueno es que debo llevar enviar el dato que recojo en los ADC´s del pic vía SPI a un DAC para un posterior procesamiento de la señal, pero resulta que mi DAC (TLC5615) tiene que recibir un dato de 16 bits para poder procesarlo bien.... Ahora. estoy aplicando estás instrucciones para convertir mi dato proveniente desde el conversor del PIC a uno de 16 bits, pero en la salida del DAC pues el valor de voltaje me sale erroneo, no se si es que estoy aplicando las instrucciones mal, si alguien me orientase se lo agradecería!
int16 c;
int16 analg_b,analg_a,val_dac;
signed int16 ADC;
ADC=read_adc(); // ADC=dato digital del ADC
analg_b= ADC;
analg_a= ADC>>8;
val_dac=(analg_a<<8)|analg_b;
RA5=0; // Activo el DAC
c=val_dac;
SPI_Envia (c); // Envía dato
RA5=1; // Desactivo el DAC
int16 SPI_Envia ( int16 c)
{
SSPBUF = c; // Envia dato
while (! BF ); // Espera a que se transmita
return SSPBUF ;
}
Atte: Enigma... La llanerita de Guayana