Bueno, no uso PBP, pero se pueden usar interrupciones como desde cualquier otro lenguanje, entonces podemos implementar utilizando estas algo parecido a lo que hace un RTOS, por ejemplo utilizando un 16F628 a 4 mhz, tenemos un ciclo de instruccion de 1 microsegundo.
Entonces preescalamos el timer cero en 256, por lo que se desbordara cada 65,536 milisengundos, entonces activando la interrupcion del timer cero, puedo cololcar en el vector de interrupcion una rutina que lea el portb por ejemplo, entonces esta se ejecutara cada 65,536 milisegundos automaticamente, leyendo el portb y cargando este valor en una variable x.
El el loop principal puedo ocuparme por ejemplo de encender y apagar un led y que el retardo sea la variable que leo en el portb, no se si entiende la idea, de esta manera por ejemplo pueden leer los botones de encendido y apagado sin tener que depender del main loop.
Como siempre digo no soy el mas indicado para explicar, pero espero que sirva para aclarar el asunto, en el foro de C hay un debate de RTOS que deja mas que calro como se puede simular una ejecucion paralela, y como funcionan.
bueno espero como dicen, no haber liado mas el asunto.
saludos
ARIEL