#include <12f683.h>
#device adc=8
#fuses INTRC,NOWDT,PUT,NOMCLR,NOPROTECT,NOBROWNOUT,NOIESO,NOCPD,NOFCMEN
#use delay(clock=8000000)
#use fast_io(a)
#zero_ram //pone a "0" todos los registros internos que son usados como
//variables
int8 valor_adc;
void main()
{
setup_adc_ports(sAN1);
setup_adc(ADC_CLOCK_INTERNAL);
set_adc_channel(1);
delay_us(10);
while(true)
{
read_adc(ADC_START_ONLY);
while(adc_done()==1)
valor_adc=read_adc(ADC_READ_ONLY);
}
}
char valores[50];
int x=0;
while(x==50) // lo hace 50 veces
{
valores[x]=read_adc();
x++;
} #byte ARDES=0xFC4
#byte ADREL=0xFC3
#byte ADCON0=0xFC2
#byte ADCON1=0xFC1
#byte ADCON2=0xFC0
void configurar_AD(){
//paso1
//seleccion de la referencia
bit_clear(ADCON1,5);//elegimos Vss (poniendo un uno elegimos AN2(-vref))
bit_clear(ADCON1,4);//elegimos Vdd (=1 AN3(+vref))
//seleccion de canal A o D (AN0-AN2)
bit_set(ADCON1,3);
bit_set(ADCON1,2);
bit_clear(ADCON1,1);
bit_clear(ADCON1,0);
//seleccion del canalA0 como analogico
bit_clear(ADCON0,2);
bit_clear(ADCON0,3);
bit_clear(ADCON0,4);
bit_clear(ADCON0,5);
//fustificacion izq
bit_clear(ADCON2,7);
//elegimos el tiempo de adquisicion 2Tad
bit_clear(ADCON2,5);
bit_clear(ADCON2,4);
bit_set(ADCON2,3);
//Clock del conversor Fosc/64
bit_set(ADCON2,2);
bit_set(ADCON2,1);
bit_clear(ADCON2,0);
bit_set(ADCON0,0); // activamos el conversor AD tacq=2,66 us
}
Tengo una duda, es necesario poner force_sw en la configuracion del rs232?No no hace falta para nada :mrgreen: si el pic que esta utilizando posee hardware usart pero utilizas los pines que no son para el usart, como por ejemplo el pin_A0 el compilador usara las rutinas rs232 por software, pero si el pic emplea hardware usart y utilizas los pines del hardware el compilador utilizara las rutinas por hardware para el manejo del rs232, a menos que, uses force_sw en cuyo caso el compilador se vera obligado a utilizar las rutinas por software :shock: :mrgreen: