Saludos a Todos los Amigos (as) del Foro TODOPIC, esperando que se encuentren Muy Bien.
Una vez más, acudo a Ustedes en referencia a un problema que se me está presentando con un Programa realizado en Lenguaje "C", empleando Compilador CCS Versión 5.07. y Microcontrolador PIC16F628.
El Código de la Programación es el siguiente:
////////////////////////////////////////////////////////////////////////////////////////
#Include <16F628.h> // Incluye la Librería del PIC a Utilizar.
#Fuses NOWDT, NOBROWNOUT // Fusibles: Palabras de Configuración
#Fuses NOLVP, PROTECT // Fusibles: Palabras de Configuración
#Use Delay(Internal=4MHz) // Frecuencia del Oscilador en el Circuito
#Use Standard_IO(A) // Para Optimizar el Código
#Use Standard_IO(B) // Para Optimizar el Código
#Define On Output_High // Para abreviar escritura
#Define Off Output_Low // Para abreviar escritura
/////////////////////////////////////////////////////////////////////////////////////////
Void Main() // Programa Principal.
{ // Inicio del Programa Principal.
Port_B_Pullups(0xFF); // Activación de Resistores Pullups
While(true) // Activa un Ciclo Infinito.
{ // Extremo Inicial del Ciclo Infinito.
if(input(Pin_A0)) // Si RA0 está en "1".
{ // entonces...
Off(Pin_B0); // El Pin RB0 entrega siempre un "0".
}
else // De lo Contrario...
{
Delay_ms(30000); // Espera 30 Segundos
On(Pin_B0); // y activa el Pin RB0.
}
} // Fin del Ciclo Infinito
} // Final del Programa
El Problema consiste en que cuando dejo Oprimido el Pulsador conectado en el Pin RA0, el cual está configurado como entrada (Ver Esquema en Archivo Adjunto), el tiempo transcurrido para activar al Pin RB0 que está configurado como Salida, por lo general es mayor a 30 Segundos, por lo que el PIC no respeta lo establecido en la Programación.
Una vez activado el Pin RB0, al liberar el Pulsador, (según lo establecido en la Programación) dicho terminal debería retornar inmediatamente al Estado Lógico "0", pero no lo hace, en su defecto, espera casi 30 Segundos para llegar a dicho estado.
No comprendo el por qué de este comportamiento en el Microcontrolador. Agradecería la Mayor Colaboración posible.
Quisiera Agradecer a TODOS (AS) por sus valiosos Aportes en este Foro, los cuales me han sido verdaderamente Muy Útiles en esta área tan especial de la Electrónica. Saludos y Mucho éxito para TODOS (AS).