Retardo de microsegundos en C

Hola,

Estoy empezando a programar pics en C y necesito una función que haga un retardo del orden de microsegundos. En un principio no necesito que sea exacto, es solo que no me sirve con delay(int) en milisegundos. He buscado y todo lo que logro encontrar es en ensamblador.

Muchas gracias,

Un saludo.
 
Código:
void delay(int t)
{
 for (int b=0; b<=t; b++)
 {
   t=t;
 }
}

No me preguntes si es exacto, pero de que hace retardo lo hace. En ensablador si es posible ser mas exactos. Tambien usando un timer, pero no se si el compilador pueda trabajar el timer como con la pc. Yo uso casi exclusivamente ensamblador.
 
Hola, gracias por tu respuesta.

Como bien dices, hace un retardo, el problema es que no se de cuanto. Todo está en saber cuantos ciclos de reloj utilizaria el for aproximadamente. Si alguien tiene el dato me sirve perfectamente.

Gracias!!
 
Genial, apunto soluciones.

Por cierto, ¿los motores paso a paso no toleran pulsos tan seguidos no? No puedo alimentarlo con los 24v que me pide, solo con 12, y se me queda vibrando. Es solo una curiosidad que quiero aclarar, gracias.

Un saludo
 
Depende de los pasos necesarios que el motor necesite para dar una vuelta... y yo por mi experiencia e visto que los motores paso a paso si el retardo entre paso y paso es menor a 5 o 10 milisegundos quedan vibrando... y tambien depende de la secuencia con la que quieras hacerlo girar...
 
Atrás
Arriba