# Manejo del DAC del pic-16F877



## diegomr85 (Abr 20, 2006)

Hola a todos!
Os escribo para preguntaros cual es la precision del DAC del pic16F877, se que es de 10bits y he estado haciendo pruebas y para un mismo valor de entrada me varia mucho la salida digital, tanto que hago un promedio de los datos y no se acerca nada, a lo que deberia ser en realidad.
Tambien tengo duda, de como mandar el contenido resultante de 10 bits en un bytes por el puerto serie.

Estoy trabajando con un compilador en C, y hay ejemplos hechos, y lo pongo igual y no me da, nada con logica. 
Este pic tiene 8 entradas analñogicas, multiplezadas, la cual utilizo la primera, y para vref del convertidor utilizo +Vref=5v y -Vref=0v, del mismo pic.

Si alguien tiene idea de que me estoy ekivocando o tiene una pagina donde venga un ejemplo probado, que me de un toke.
Me mirado el manual del compilador y del pic, y no se saco nada. Me falta experiencia, si alguien la tiene y la comparte ,lo agradeceria. 
Hay os pego mi codigo 

Y gracias de todas manera


----------



## maunix (Abr 21, 2006)

diegomr85 dijo:
			
		

> Hola a todos!
> Os escribo para preguntaros cual es la precision del DAC del pic16F877, se que es de 10bits y he estado haciendo pruebas y para un mismo valor de entrada me varia mucho la salida digital, tanto que hago un promedio de los datos y no se acerca nada, a lo que deberia ser en realidad.
> Tambien tengo duda, de como mandar el contenido resultante de 10 bits en un bytes por el puerto serie.
> 
> ...



Desconozco ese compilador de C, pero te paso un par de sugerencias

1) Fijate si estas utilizando justificacion izquierda o derecha del A/D.  Si usas configuracion izquierda leeras valores muy grandes leyendo de a 10 bits.
2) Verifica que la variable donde guardas el dato sea de 16 bits, ni mayor ni menor.
3) Fijate que tu hablas de DAC en tu código y aqui en el foro, y un DAC es un conversor Digital a Analogico.  Es el dispositivo inverso a un ADC que es de lo que realmente estas preguntando.
4) Si posteas bien cuales son los errores o las cosas raras que te suceden, te podremos ayudar.  Además, esa funcion readadc() realmente dispara el ad? o solo lee el valor del registro ADRESH:ADRESL ?

Saludos


----------



## GaboRojo (May 13, 2009)

diegomr85 dijo:
			
		

> Hola a todos!
> Os escribo para preguntaros cual es la precision del DAC del pic16F877, se que es de 10bits y he estado haciendo pruebas y para un mismo valor de entrada me varia mucho la salida digital, tanto que hago un promedio de los datos y no se acerca nada, a lo que deberia ser en realidad.
> Tambien tengo duda, de como mandar el contenido resultante de 10 bits en un bytes por el puerto serie.
> 
> ...



Amigo, no veo el código.

Por otra parte, ese microcontrolador tiene un ADC, no un DAC, si necesitas un DAC busca información sobre la red resistiva "R-2R", sin las comillas =D.

En C, el manejo del conversor ANALOGO-DIGITAL depende del compilador, yo he utilizado el mikroC, y la instrucción es 

unsigned variable = ADC_Read();

No es necesario inicializar nada, esa instrucción dispara automáticamente el bit de encendido del ADC.

Espero haberte ayudado.


----------



## bofocastillo (May 13, 2009)

mmm, yo encontré un pequeño tutorial en donde explican algo de lo que preguntas (comunicacion serial, CAD) pero los ejemplos están en ensamblador, aún así espero te sirva.

www.scribd.com/doc/101179/pic16f877-en-espanol2


----------



## asdlocal (Mar 21, 2011)

La verdad es que no se como manejar eso lo del mikro, al parecer no veo donde se define el tipo de micro a utilizaro , no le entiendo muy bien es por eso que necesito unos ejemplos para aprender..... 


lo necesito por favor..... 

Les agradezco su ayuda de antemano..... 

PD: Por lo menos unos ejemplitos de ADC y LCD....Por si acaso estoy utlizando el PIC18f4550

Estoy algo desesperado.....


----------

