men no sabes cuanto te agradezco era eso del while(true) ahora si me funciona !!!
dejo el codigo por si le sirve a alguien XD
#include <16F628A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP
#fuses NOMCLR //Sin conectar la resistencia al pin MCLR
#fuses INTRC_IO
#use delay(internal=4000000)
#use FIXED_IO( B_outputs=PIN_B6,PIN_B5,PIN_B4 )
#define DESTINOOK PIN_B0
#define INICIOC PIN_B1
#define FINALC PIN_B2
#define SOBRECARGA PIN_B3
#define IN3 PIN_B4
#define IN4 PIN_B5
#define RELOJ PIN_B6
void main(void)
{
while(TRUE) //bucle infinito
{
output_low(RELOJ); //NO SE REALIZO LA ACCION DE ABRIR Y CERRAR LA PUERTA!!!
output_low(IN3); //driver de motor L293D en parada
output_low(IN4);
while( input_state(DESTINOOK)==1) //mientras que la cabina del ascensor este en su destino
{
while( input_state(FINALC)==0) //mientras no se pulso el final de carrera de la puerta
{
output_high(IN4); //abrir puerta ( 1 0 ) con el driver
output_low(IN3);
}
output_low(IN4); //ya se pulso el final de carrera, se hace una parada
output_low(IN3);
delay_ms(15000); //por 15 segundos para que suban los pasajeros o bajen...
if(input_state(SOBRECARGA)==0) //si los pasajeros no se excedieron en el peso
{
while(input_state(INICIOC)==0) //mientras no se pulso el inicio de carrera de la puerta
{
output_low(IN4); //cerrar puerta (0 1) con el driver
output_high(IN3);
}
output_low(IN4); //ya se pulso el inicio de carrera, se hace una parada
output_low(IN3);
output_high(RELOJ); //SE REALIZO LA ACCION DE ABRIR CERRAR LA PUERTA !!!, se manda un pulso que confirma eso
delay_ms(1500);
output_low(RELOJ);
delay_ms(1000);
}
else //sino
{
output_low(RELOJ); //mantener en cero, tanto el pulso de confirma
output_low(IN3); //como el motor (que se mantenga en parada 0 0 ,puerta cerrada )
output_low(IN4);
}
}
}
}
UNAC-FIEE XD