TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: zagoaristides en 04 de Julio de 2007, 19:14:50
-
Bueno, este tema pretende ser una guía para quienes quieren usar el conocido simulador con compiladores de C y no con el PicBasic que trae incluido. Se aceptan comentarios de las formas con PROTEUS.
-
Bueno antes que nada quiero saber si alguien intentó hacer funcionar el display LCD del Pic Simulator o el display gráfico. En lo que estoy tratando ahora no puedo con una simple rutina como:
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#include <LCD.c>
void main() {
char k;
lcd_init();
lcd_putc("\fReady...");
while (TRUE) {
}
}
A ver si alguien puede aportar algo sobre la configuración del Pic Simulator para el LCD o que puede estar fallando
También probé modificando la librería LCD, llamándola obviamente con otro nombre, pero no conseguí ningún resultado.
Otro intento fué:
void main()
{
lcd_init();
lcd_gotoxy (1,1);
lcd_putc("Ready...\n");
while (1){
}
}
Y nada...
-
OTROS PROGRAMAS que trabajan con los puertos me funcionan bien, por ejemplo los outport y demás, hice varios ejemplos y otras ideas mías como para practicar:
#include <16F873.H>
#pragma fuses HS,NOWDT,NOPROTECT,NOLVP
#pragma use delay(clock=20000000)
#inline
void pulse_B0() {
output_high(PIN_B0);
delay_us(100);
output_low(PIN_B0);
delay_us(50);
}
#pragma zero_ram
void main(void)
{
int i;
//output_high(PIN_B1);
while (1)
{
if( input(PIN_B1) )
{
for (i=1;i<=100;++i)
{
pulse_B0();
if (!input(PIN_B1))
break;
}
}
else
output_low(PIN_B0);loscope o el
}
}
Lo que hace es verificar en que estado está el pin B1 y si está en 1 saca por el pin B0 una onda cuadrada. Muy simple. También lo probé con comandos de fast IO y anda bien. En fin espero le sirva a alguien para practicar. Deben activar el Microcontroler View dentro de Tools, también pueden usar el Oscilloscope o el 8 x LED Board para ver la onda de salida. Configuran el microcontrolador en Options - Select Microcontroller y ajustan la frecuencia a 20M dentro de Change clock frequency.
Lo ejecutan con Simulation - Start (pueden también cambiar la velocidad en Rate, aunque no es real, de ahi que los tiempos sean us en la funcion pulse_B0). Lo que deberían ver es que al pulsar [T] del pin B1 en Microcontroler view comienza a verse la señar en el Osciloscopio o en su defecto en la 8 x Led Board. Voy a seguir intententando con el LCD, espero comentarios. Por cierto todo se dirije a que en un par de meses pueda "controlar" un acelerómetro para medición de potencia, velocidad y más. Veremos que pasa.