Resulta que decidi hacer un voltimetro para mi fuente partida, y lo que hice fue comenzar a programar un pic 16f877a u andaba re bien. Ahora vi que tenia un pic 16f690 y vi que tiene entradas analogicas por lo que seria un desperdicio utilizar el 877 para esto si tengo el 690, por lo que modifique el programa pero a la hora de compilar me aparecen errores de la libreria LCD.C, a esta ya la utilice es la que viene en el ccs y funciona de maravillas con el 16f877a. Es la primera vez que cambio los pines del LCD que viene por defecto en la libreria ya que el 16f690 no trae portE.
Les dejo el codigo.
Espero que me ayuden, estoy comenzando con ccs y la verdad que estoy aprendiendo con los ejemplos de este foro y me sirvieron un monton.
Desde ya gracias.
Les dejo el codigo
#include <16f690.h>
#device ADC=8
#fuses XT,NOWDT,NOPROTECT,PUT,BROWNOUT
#use delay(clock=4000000)
#define LCD_ENABLE_PIN PIN_C0 ////
#define LCD_RS_PIN PIN_C1 ////
#define LCD_RW_PIN PIN_C2 ////
#define LCD_DATA0 PIN_C4 ////
#define LCD_DATA1 PIN_C5 ////
#define LCD_DATA2 PIN_C6 ////
#define LCD_DATA3 PIN_C7
#include "lcd.c"
int valor=0x00;
int valor1=0x00;
const float vccmax1=15.22;
const float vccmax=15.11;
void cortocircuito()
{
do{
lcd_init();
printf(lcd_putc," Corto Circuito
presionar reset");
}while(true);
}
void toma_adc(void){
// Lectura del canal 0
set_adc_channel(0);
delay_ms(1);
valor=read_adc();
delay_ms(1); //para que se estabilice
// Lectura del canal 1
set_adc_channel(1);
delay_ms(1);
valor1=read_adc();
delay_ms(1); //para que se estabilice
}
void main() {
float tension=0;
float tension1=0;
setup_adc(ADC_CLOCK_INTERNAL); //configura el converso
setup_adc_ports(all_analog); //entrada 0 como analogica
do {
delay_ms(100);
toma_adc();
lcd_init();
tension=(valor*vccmax)/255;
tension1=(valor1*vccmax1)/255;
printf(lcd_putc,"Vcc+ %3.1f V
Vcc- -%3.1f V",tension,tension1);
}while(true);
}
PD: Utilizo dos entradas analogicas las RA0 y la RA1 una para la tension positiva y otra para la negativa que la invierto con un operacional antes de ingresar al adc