Puerto análogo pic16f88

#1
hola a todos

mi problema es el siguiente:

hice un programa en donde ocupo el puerto adc del microcontrolador pic 16f628 pero necesito grabar el programa ya hecho y solo me consegui un pic 16f88 me sale un error el la configuracion del puerto al cambiar en la libreria el pic16f62 por el pic16f88 adjunto el codigo

Código:
#include <16F88.h>
#device adc=10
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect 
#use delay(clock=4000000)
#include <lcd.c>
#define LED PIN_B2 
void main() {
 
   int16 medicion;
   float voltaje;
   
   lcd_init();
   
   while (1) { 
 
   {

     setup_adc(ADC_CLOCK_INTERNAL); 
     setup_adc_ports (RA0_analog); aqui me sale error me dice el compilador ccs que no esta definido
      set_adc_channel(0);         
      delay_us(20);
      medicion= voltaje;
      medicion = read_adc(); 
      setup_adc (adc_off);
      voltaje = 13.8 * medicion / 1024; 
   
      printf(lcd_putc, "\fADC = %4ld", medicion);
      printf(lcd_putc, "\nVoltage = %01.2fV", voltaje);   
   } 
      if(input(pin_a1)==0)
        output_low(LED);
      if(input(pin_a1)==1)
        output_high(LED);
    
      if ((voltaje>=12.25) && (voltaje<=13.8)){
        output_high(PIN_B0);
        delay_ms (1000);
}
      else {
        output_low(PIN_B0);
     }
      if ((voltaje>9.7) && (voltaje<12.25)){
        output_high(PIN_B1);
        delay_ms (1000);
     }
      else 
        output_low(PIN_B1);
     }    
  }
el programa lo que hace es medir el voltaje de una bateria y dependiendo del valor de este se encienden los leds dependiendo del rango de voltaje

cualquier ayuda muchas gracias
saludos a todos
 
Última edición por un moderador:
#2
hice un programa en donde ocupo el puerto adc del microcontrolador pic 16f628 pero necesito grabar el programa ya hecho y solo me conseguí un pic 16f88
El PIC16F628 no tiene ADC, solo tiene comparadores analógicos.
Así que no te hubiera servido de todas formas para tu programa.
me sale un error el la configuración del puerto al cambiar en la librería el pic16f628 por el pic16f88
Cambia RA0_analog por sAN0 y listo.

En el PIC16F88 puedes usar el oscilador interno hasta 8MHz.
Entonces puedes cambiar el fuse XT por INTRC_IO
y la declaración #use delay (clock = 4000000) la cambias por #use delay (internal = 4M) // u 8M

Suerte.
 
Arriba