Quiero implementar una función de retardo muy simple con más o menos este aspecto:
void delay(float seconds){
int i;
for(i=0; i<seconds*5000000; i++);
}
Se basa solo en los ciclos de reloj (haciendo algunas pruebas asumí que 5000000 ciclos son de 1 segundo) pero no funciona en absoluto. En su lugar, espera para siempre, pero utilizando
void delay(float cycles){
int i;
for(i=0; i<cycles; i++);
}
simplemente funciona bien si, por ejemplo, quiero que el programa espere 2 segundos haciendo cycles=10000000
, ¿alguien sabe por qué?