Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: TrufiTrufi en 18 de Noviembre de 2011, 20:03:22
Título: pic16f877A a 10 bits!!
Publicado por: TrufiTrufi en 18 de Noviembre de 2011, 20:03:22
Solucionadoo!!Gracias!!
Título: Re: pic16f877A a 10 bits!!
Publicado por: KALLITOS en 18 de Noviembre de 2011, 21:04:45
Pasate a pic18, ellos tienen adc de 10 bits, no tengas miedo.
Título: Re: pic16f877A a 10 bits!!
Publicado por: AngelGris en 18 de Noviembre de 2011, 22:30:49
El 16F877 también tiene ADC de 10 bits;
Para poder usar los 10 bits tenés que utilizar "Right Justified" y así vas a tener en ADRESH los 2 bit de mayor peso y en ADRESL los 8 bit de menor peso. Luego puedes almacenarlos en una variable int y listo. En Hitech podés hacer algo asi...
Código: C
int lectura_adc;// declaracion de la variable
lectura_adc =(ADRESH<<8)+ ADRESL;
la línea anterior multiplica por 256 ADRESH (para que ocupe el byte alto de la variable int) y luego sumo ADRESL
Como una sugerencia yo hice lo siguiente para escribir en el timer1 (16bits) en una sola línea de C
Código: C
volatileunsignedint TIMER1 @ &TMR1L;// con eso apunto mi variable a la dirección de TMR1L.
TIMER1 =60000;// al poner esto, se cargan perfectamente tanto TMR1H como TMR1L
tal vez se pueda hacer algo similar con ADRESH y ADRESL