TODOPIC

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
  1. int lectura_adc; // declaracion de la variable
  2.  
  3. 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
  1. volatile unsigned int TIMER1 @ &TMR1L; // con eso apunto mi variable a la dirección de TMR1L.
  2.  
  3. TIMER1 = 60000;  // al poner esto, se cargan perfectamente tanto TMR1H como TMR1L

  tal vez se pueda hacer algo similar con ADRESH y ADRESL