He escrito un pequeño programa PIC en mikroC para encender y apagar un led con el mismo botón. Al presionar el interruptor, se encenderá el led y si se presiona nuevamente el mismo interruptor, el led se apagará. Aquí está el programa que escribí
void main()
{
TRISB=0X00;
TRISC=OXFF;
PORTB=0X00;
PORTC=0XFF;
while(1)
{
if (portc.f3==0) /*checking if the switch is pressed*/
portb = ~portb; /*if the switch is pressed, the led will go off if it is already on or the led will go on if the it is already off*/
portc = 0xff;
}
}
}
otra versión del mismo programa que he escrito es
void main()
{
int flag=0;
TRISB=0X00;
TRISC=OXFF;
PORTB=0X00;
PORTC=0XFF;
while(1)
{
if (portc.f3==0 && flag==0)
{
portb = 0xff;
flag=1;
portc=0xff
}
if (portc.f3==0 && flag==1)
{
porb=0x00;
flag=0;
portc=0xff;
}
}
}
en ambos casos no funciona como se esperaba. Cuando presiono, enciende el led. encendido pero después de un tiempo se apaga solo (sin volver a presionar el interruptor).
por favor, ayúdame y hazme saber qué hay de malo con mis programas, si los hay.