Puede ser porque no te pones tú en el lugar del microcontrolador y el trabajo que según tus instrucciones debe realizar.
Recuerda y grabate que el microcontrolador solo hace una cosa a la vez pero el truco es que lo hace muy rápido para nosotros y así como una película de video es una sucesión de "fotos"a una velocidad rápida, tú puedes implementar un sistema similar en el programa.
Para qué quieres esperar sin hacer nada mas si debes prender algo durante x tiempo y luego apagarlo?
Hay varias formas de resolver esto según la precisión que amerite la situación.
Puedes realizar un contador con una variable que se incremente cada determinado tiempo(muy corto...ejemplo 50ms) y cada vez que la incrementas revisas los otros pulsadores y haces según tú antojo lo que debas y cuando llegas al tiempo según la suma de estos pequeños retardos apagas lo que has prendido.
La de mayor precisión sería usando interrupciones pero sospecho, por como vas con la programación en general, que lo dejes para más adelante.
Hola, ricbevi, soy un novato en esto pero ya entiendo lo que me dices, muchas gracias por tu aclaracion.