TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jonathanmedina en 17 de Mayo de 2005, 02:53:00
-
Este código es el que utilizo para la lectura del convertidor:
#include <18F452.h>
#device ADC=8
#use delay(clock=4000000)
#fuses XT,NOWDT, NOLVP
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
////////////////////////////////////// PRINCIPAL //////////////////////////////////////
void main()
{
float escala = 255; // Escala del conversor ADC
float v_max =5.0; // Voltaje máximo que entrega mi fuente
int valor=0; // La declaración de variables SIEMPRE debe ir lo primero
float voltaje;
input(PIN_B5);
setup_adc_ports(AN0_VREF_VREF);//Configura A0 como entradas analógicas
//Vdd en A3 y Vss en A2
// como voltaje de referencia
setup_adc( ADC_CLOCK_INTERNAL );
set_adc_channel( 0 );// Seleccionamos el canal0
while(1) // Bucle infinito,que se ejecuta de forma indefinida
{
output_high(PIN_B1);
output_high(PIN_D0);
output_high(PIN_C3);
output_low(PIN_D1);
delay_ms(250);
valor = read_adc(); // Capturamos señal analógica por el canal seleccionado
delay_ms(700);
voltaje=(((float)valor)*v_max)/escala;
printf("
valor=%f",voltaje);
output_low(PIN_D0);
output_low(PIN_C3);
output_high(PIN_D1);
delay_ms(1000); // Retardo de un 10 ms
}
}
bueno amigos creo que esta biern pero estoy arto de que el pic de los valores que le de la gana, he habklado con varios entendidos y me dicen que el código está bien lo pongo aqui para haber si alguién ha tenido el mismo problema, que los valores que da el PIC no tiene nada que ver con los que tenemos a la entrada, por supuesto lo he probado con tensiones de referencia y sin ellas, haber si hay un alma caritativa que tambien se alla quebrado la cabeza.
Gracias por todo.
-
Un usuario posteó alguna vez un problema parecido y lo resolvió poniendo un condensador a masa en la entrada ADC del PIC.
-
Muchas gracias por la ayuda, lo he probado con un condensador de 0.1uF y sigue igual aunque parece algo más estable en lo datos que manda, nuevamente gracias por la atencion.