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.