Tengo unas cuantas dudas sobre la simulacion del A/D usando PCW:
Mi primera pregunta es si hay alguna manera de en la simulacion, introducirle una tension ficticia al PIC(en mi caso 16f876), pues lo unico que se hacer es simular la entrada de un cero o un uno.
La segunda es sobre el siguiente programa que cuelgo, y es k en la simulacion se me atasca en "calcula_voltaje" y no se exactamente porque es (como tb desconozco como introducir señales analogicas en las entradas, simplemente en valor introduje un valor determinado,en este caso 12, que seria el valor que diese el convertidor ante una entrada de 0.25 V) Llegue a pensar que el PCW no soporta operaciones con variables float, pero la verdad es q no se porque pasa
#include <16F876.h>
#device adc=8
#use delay(clock=4000000)
#include <lcd.c>
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NOLVP
const int escala = 255;
const float v_max = 5.0;
void calcula_voltaje (int val, float &voltaje)
{
voltaje=(val*v_max)/escala;
}
void main(void)
{
int valor;
float voltaje;
lcd_init();
lcd_putc("f"); //Borra pantalla
lcd_putc("voltios = "
;
lcd_gotoxy(16,1);
lcd_putc("V"
;
for(;
{
lcd_gotoxy(11,1);
setup_adc(adc_clock_div_32); //Enciende conversor
setup_adc_ports(RA0_ANALOG); //Selecciona terminales
set_adc_channel(0); // Selecciona canal
valor=12; //read_adc(); // Conversión AD
calcula_voltaje(valor,voltaje);
printf(lcd_putc,"%2.2f",voltaje);
delay_ms(1000);
}
}