TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: pdurden en 30 de Septiembre de 2005, 13:28:00
-
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);
}
}
-
Ke tal!!! ese programita se parece mucho al que pone en su trabajo de fin de carrera nuestra amiga Xelene en el punto 4.3 Entradas analógicas: Potenciómetro....tu pregunta para modificar en la simulacion la entrada, bien facil pon un potenciometro que bascule entre +5 y 0v....por cierto te recomiendo que leas el apartado que te he mencionado anteriormente realizado por Xelene en su trabajo ya que dice que las entradas no pueden ser mayores que 5v y tu has puesto 12v!!!jeje...aqui te pongo el enlace para ver el post del trabajo:
http://miarroba.com/foros/ver.php?foroid=46840&temaid=3816056
Y desde la pagina del amigo nocturno66 tambien te lo puedes descargar:
http://manolo.auna.com/
Suerte!!!
-
Gracias por tu respuesta vszener, pero al o que me refiero yo, es a si se puede llevar el introducir una señal entre +5 y 0V se puede simular por software con el PWC, pues utilizando el el Keil por ejem, eso se puede llevar a cabo, sin necesiadad de provarlo en circuito. Y lo otro que tampoco consigo aclarar es por que se detiene la simulacion en el calculo del voltaje, pues parece no soportar esa operacion. Lo del valor 12, es lo que cargaria el pic de la operacion 0.25/(5/255), por lo que no son 12V sino 0.25V. Posteriormente y multiplicando por el mismo factor recuperaria un valor aproximado a doce. Bueno, lo dicho, a ver si a alguien se le ocurre alguna solucion. Y como bien dice vszener, ese programa es el del proyecto fin de carrera de Xelene, que a mi me esta sirviendo de mucha ayuda(es cojonudo). http://miarroba.com/foros/ver.php?foroid=46840&temaid=3816056
-
En ocasiones hay varias formas de programar, para este caso yo lo hubiera hecho así, creo que es más sencillo: http://miarroba.com/foros/ver.php?foroid=85505&temaid=1771162
Un saludo