tiempo para pulsar tecla

#1
Hola tengo un while que espera a que se pulse un boton para poder continuar con el codigo, mi pregunta es como puedo hacer para que esta espera tenga un tiempo, es decir, que si no se pulsa el boton a los 5 segundos de haber entrado en el bucle se salga del programa.

Este es el bucle al que me refiero:

while (RA4==0){
}
 
#2
Hola Amigo, bueno dentro del bucle while, debes generar un incremento de variable, si la misma alcanzo el valor estipulado, es porque alcanzamos el TIMEOUT, luego haces un llamado de una interrupcion o un salto de linea.
ejem:

inicio bucle
if DATO> X then goto sigue programa ' X= valor tiempo de espera
DATO=DATO+1
'quizas sea necesario generar una pausa '

fin bucle

sigue programa:
DATO=0
 
Última edición:
#3
Gracias por la respuesta rapida, pero hay alguna forma de saber cuanto dura ese tiempo? por ejemplo, yo se que con delay_ms(miliseg); dura el tiempo que yo quiero, ahora como controlo el tiempo en este caso?
 
#6
Hola, como dice rachelies, mide el tiempo con un temporizador que salte cada x ms.

Divide el tiempo que quieres por x y lo que te de, lo inicias en una variable y lo usas en el while. Ej:
veces=670
while (veces > 0) { lo que sea }

En la rutina de interrupción, descuentas uno a veces (veces--) y restauras el temporizador, lo arrancas de nuevo y vuelves de la misma.

Este sistema además no te para el código del bucle como haría sleep o delay
 
Arriba