TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jorgevert en 10 de Diciembre de 2003, 00:11:00

Título: PROBLEMAS ADC
Publicado por: jorgevert en 10 de Diciembre de 2003, 00:11:00
TENGO PROBLEMAS CON EL SIGUIENTE CODIGO NO OBTENGO QUE FUNCIONE EL CONVERSOR A/D.
#include <16F877.h>
#device  ADC=8
#include <STDLIB.H>
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)


int8 VALUE;

void main ()
{
   SET_TRIS_D(0X00);
   SET_TRIS_A(0X01);
   SET_TRIS_B(0X00);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_adc_ports(RA0_ANALOG);
   set_adc_channel(0);
   enable_interrupts(global);
   enable_interrupts(INT_AD);
   read_adc(ADC_START_ONLY);
   while(true);
}

#INT_AD
Conversion_Ad()
{
   VALUE= READ_ADC(ADC_READ_ONLY);
   OUTPUT_B(VALUE);
   OUTPUT_D(VALUE);
   delay_us(100);
   read_adc(ADC_START_ONLY);
}  
CUALQUIER RESPUESTA SERA BIEN RECIBIDA
GRACIAS.
Título: RE: PROBLEMAS ADC
Publicado por: pocher en 10 de Diciembre de 2003, 00:39:00
Jorge me podrías indicar para qué sirve ADC_START_ONLY, he estado mirando la función read_adc() y no lo veo.

Creo que la función read_adc() se debe usar asignándola a una variable. Lee el valor de la conversión y este se asigna a una variable.

Me voy al "curro" (trabajo), esta tarde lo volveré a mirar.

Un saludo
Título: RE: PROBLEMAS ADC
Publicado por: jorgevert en 10 de Diciembre de 2003, 08:04:00
HOLA POCHER

DE LA AYUDA DEL CCS ME INDICA QUE LA OPCION ADC_START_ONLY INICIA
UNA CONVERSION EN EL ADC Y NO DEVUELVE NADA ESTO LO HAGO PARA LEER CUANDO ESTE LISTA LA
CONVERSION EN LA RUTINA DE INTERRUPCION.
SALUDOS
Título: RE: PROBLEMAS ADC
Publicado por: MGLSOFT en 10 de Diciembre de 2003, 08:21:00
Que version utilizas??
Yo no encuentro eso en la ayuda, igual que Pocher....
Título: RE: PROBLEMAS ADC
Publicado por: cucaracha en 10 de Diciembre de 2003, 09:40:00
En la IDE versión 3.36 (PCB,PCM,PCH version 3.168):



READ_ADC()
 

Syntax:  value = read_adc ([mode])

Parameters:  mode is an optional parameter.  If used the values may be:

ADC_START_AND_READ (this is the default)

ADC_START_ONLY (starts the conversion and returns)

ADC_READ_ONLY (reads last conversion result)

 
Returns:
 Either a 8 or 16 bit int depending on #DEVICE ADC= directive.

...




Saludos!
Título: RE: PROBLEMAS ADC
Publicado por: pocher en 10 de Diciembre de 2003, 22:39:00
Jorge, estuve provando el programa en PROTEUS y funciona perfectamente. Cuando pueda te lo pruebo físicamente.

Un saludo
Título: RE: PROBLEMAS ADC
Publicado por: pocher en 11 de Diciembre de 2003, 06:22:00
También funciona. ¡¡¡Comprobado!!!

Por cierto, alguién tiene un .pdf (castellano o inglés) con el manual de la versión PCWH 3168 o superior.
Título: RE: PROBLEMAS ADC
Publicado por: marmatar en 11 de Diciembre de 2003, 07:20:00
Hola Pocher...
En el maletín de C hay un manual, pero me temo que es de una versión anterior, por las dudas míralo.

Un abrazo...
marmatar