# Retardo de microsegundos en C



## XPINGARDA (Jul 17, 2010)

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.


----------



## antiworldx (Jul 17, 2010)

```
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.


----------



## XPINGARDA (Jul 17, 2010)

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!!


----------



## antiworldx (Jul 17, 2010)

mejor midelo en el simulador...


----------



## Vegetal Digital (Jul 17, 2010)

delay_ms(5); //retardo de 5 milisegundos
delay_us(5); //retardo de 5 microsegundos

a ojo de osciloscopio no es muy exacto pero es sencillo


----------



## XPINGARDA (Jul 17, 2010)

Hola

Genial, dos opciones muy buenas.

¡Muchas gracias!

Un saludo


----------



## iDan (Jul 21, 2010)

Tambien puede ser el *Vdelay_ms* o el *Delay_Cyc*


Saludos


----------



## XPINGARDA (Jul 21, 2010)

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


----------



## iDan (Jul 21, 2010)

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...


----------



## antiworldx (Jul 26, 2010)

Tienen una velociad maxima... puedes hacerlos girar mas rapido si aumentas gradualmente la velocidad, pero se quedan sin torque.


----------

