Experimentando con LED parpadeantes, aprendí cómo crear retrasos con un bucle de software o un tiempo de espera de un temporizador. Sé que para un simple programa de LED parpadeante, donde los procesos no son tan complicados y la sincronización no es crucial, el uso de cualquiera de los dos no importaría. Pero en más de un contexto multitarea crucial en el tiempo, ¿cuáles son los beneficios y / o desventajas de ambos?
Montones de gracias, así es como los configuro:
Demora de software:
void softwaredelay()
{
int i;
for(i=0; i<1000; i++)
{/*Timer Stuff*/}
}
Retardo de hardware (específico para mcu PIC16):
void timerdelay()
{
OPTION_REGbits.PSA = 0;
OPTION_REGbits.PS. = 0b111;
OPTION_REGbits.T0CS = 0;
INTCONbits.T0IF = 0;
TMR0 = 0b11111000;
INTCONbits.T0IE = 1;
while(INTCONbits.T0IF==0)
{/*Timer Stuff*/}
}