TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: LETAL en 15 de Septiembre de 2006, 19:17:34

Título: salida analógica que responda a una variable word
Publicado por: LETAL en 15 de Septiembre de 2006, 19:17:34
 Si tengo una variable byte puedo enviarla en paralelo a un dac y obtengo mi salida analógica.
Mi problema es que es el valor de salida está almacenado en un variable word, como hago para obtener la señal analógica de salida ??????????? :(
Título: Re: salida analógica que responda a una variable word
Publicado por: Nocturno en 16 de Septiembre de 2006, 12:08:52
Si tu variable es de 16 bits y tu DAC es de 8 bits, tendrás que enviar sólo los 8 bits más significativos de tu variable.
Si lo estás haciendo en C podría ser así:
salida = variable >> 8;
Título: Re: salida analógica que responda a una variable word
Publicado por: LETAL en 16 de Septiembre de 2006, 16:58:30
Me puedes explicar como sé que no tendré mucho error desechando los 8 menos significativos, no comprendo bien¿el bit 8 pasa a ser el 0 y bit 16 pasa a ser el 7????

 A mí se me ocurrió hacer una transformación de var word a byte por soft, no sé si se puede :

salidaW var word
salidaB var byte
.....
......
salidaB= salidaw*255/65535


Se pueden usar las dos formas , una sola ???????? porqué???


PD:alguien puede decirme como guardo en una variable byte los 8 bits más altos de una variable word en picbasic.
Título: Re: salida analógica que responda a una variable word
Publicado por: Mario en 16 de Septiembre de 2006, 18:12:55
Usa Highbyte y Lowbyte como en el ejemplo:
http://www.microengineeringlabs.com/resources/samples/pbp/eeword.bas

Lo que comenta nocturno es cierto.

Sobre lo del error, depende de tu conversión.

A menos que tengas un DAC de 16 bits puedes mandarlo todo, pero no lo tienes entonces... es mejor desechar los bits de menor peso.

Con lo anterior me remito al comentario de la conversión: ¿el máximo valor de tu palabra son los 16 bits?.   Es decir, ¿el máximo valor que tienes en esa variable llega a 10 bits, 12, 14, 16?

Lo anterior es porque si es de 10 bits, para un DAC de 8 con 5 volts de referencia perderías como 15 milivolts por incremento en el DAC.
Título: Re: salida analógica que responda a una variable word
Publicado por: Nocturno en 17 de Septiembre de 2006, 02:49:39
Si el DAC tiene menos bits de resolución que tu variable Word, el error que se generará no es otro que esa diferencia de bits, aunque si descartas los menos significativos, el error será menos significativo.

De todas formas, pienso que si el diseño de tu circuito tiene un DAC de menos bits, será porque no necesita más, en cuyo caso no hay problema. Donde sí habría problema sería en el caso contrario; si tuvieras una variable con menos bits que el DAC. En este caso estaríamos desperdiciando bits de resolución que no podrían recuperarse de ninguna manera.

Con respecto a tu fórmula, es casi correcta y equivalente a la que yo puse.

    salidaB= salidaw*255/65535

es casi lo mismo que
   
    salidaB = salidaw / 256

y esto es idéntico a

    salidaB = salidaw >> 8