buenas amigos
Estaba tratando de aprender a utilizar el convertidor analogico digital del pic 16f876 usando en simulador proteus y el compilador ccs.
La cuestion es que el proteus me suelta el siguiente error: ADC CONVERSION CLOCK PERIOD (5E-8) IS LESS THAN MIN TAD=1,6US AND IS POSIBILLY INVALID FOR DEVICE CLOCK FRECUENCY si alguien podria ayudarme de forma clara yo se que hay un post parecido de esto pero no me dejo claro nada y ademas creo que usan assembler.
bueno aca dejo el codigo de mi programa:
#include <16f876A.h>
#device adc=10
#fuses XT,NOWDT
#use delay(clock=40000000)
#define use_portb_lcd TRUE
#include <lcd.c>
void main()
{
int16 lee;
float result;
setup_adc_ports(AN0);
setup_adc_ports(ADC_CLOCK_INTERNAL);
lcd_init();
while (1)
{
set_adc_channel(0);
delay_us(20);
lee=read_adc();
result=(lee*5.0)/1024.0;
printf(lcd_putc,"\f ADC = %41ld ",lee);
printf(lcd_putc,"\n voltage = %01.2f V",result);
delay_ms(100);
}
}
espero puedan ayudarme
Estaba tratando de aprender a utilizar el convertidor analogico digital del pic 16f876 usando en simulador proteus y el compilador ccs.
La cuestion es que el proteus me suelta el siguiente error: ADC CONVERSION CLOCK PERIOD (5E-8) IS LESS THAN MIN TAD=1,6US AND IS POSIBILLY INVALID FOR DEVICE CLOCK FRECUENCY si alguien podria ayudarme de forma clara yo se que hay un post parecido de esto pero no me dejo claro nada y ademas creo que usan assembler.
bueno aca dejo el codigo de mi programa:
#include <16f876A.h>
#device adc=10
#fuses XT,NOWDT
#use delay(clock=40000000)
#define use_portb_lcd TRUE
#include <lcd.c>
void main()
{
int16 lee;
float result;
setup_adc_ports(AN0);
setup_adc_ports(ADC_CLOCK_INTERNAL);
lcd_init();
while (1)
{
set_adc_channel(0);
delay_us(20);
lee=read_adc();
result=(lee*5.0)/1024.0;
printf(lcd_putc,"\f ADC = %41ld ",lee);
printf(lcd_putc,"\n voltage = %01.2f V",result);
delay_ms(100);
}
}
espero puedan ayudarme