Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

24/01/2013 #1

Avatar de francpas

Puerto análogo pic16f88
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
24/01/2013 #2
Moderador

Avatar de D@rkbytes

francpas dijo: Ver Mensaje
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.
francpas dijo: Ver Mensaje
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.
24/01/2013 #3

Avatar de francpas

muchas gracias me funciono a la perfeccion
saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.