TODOPIC
Microcontroladores PIC => dsPIC => Mensaje iniciado por: letxu2 en 20 de Junio de 2006, 15:18:46
-
Hola a tod@s! Estamos intentando realizar una función que realice un retardo de 1 min EN C (importante..jeje). El pic utilizado es el 30F6014. Hemos conseguido hacer una chapucilla con "asm ("nop");" y muchos whiles encadenados pero el buffer se desborda y solo conseguimos que haga un retardo de 0'5 segundos (y con unos 15 nop uno detras de otro...). ¿No hay alguna funcion o instruccion definida ya?¿Alguien ha hecho algo parecido sin utilizar sleep?
Muchas Gracias :)
-
Yo lo haría utilizando macros de la siguiente forma:
#define nop() {Nop();} //Nop() defined in p30f4011.h
#define nop2() {nop();nop();} //2 "no operation" instructions
#define nop3() {nop2();nop();} //3 "no operation" instructions
#define nop4() {nop2();nop2();} //4 "no operation" instructions
#define nop5() {nop2();nop3();} //5 "no operation" instructions
#define nop10() {nop5();nop5();} //10 "no operation" instructions
#define nop20() {nop10();nop10();} //20 "no operation" instructions
#define nop40() {nop20();nop20();} //40 "no operation" instructions
Un saludo
Javio
-
Sería interesante que indicases el valor del cristal de cuarzo que estás empleando como oscilador, para dar una idea de la velocidad a la que trabaja, y poder programar un timer para que te realice el retardo.
-
¿Qué compilador usas?
Suerte!!! :wink:
-
yo cre que lo mejor para relizar una funcion de retardo es usar varios ciclos FOR anidados y asu seia mas independiente del compilador que uses
-
Decía lo del compilador, porque normalmente suelen traer dicha funcion de retardo incorporada.
Suerte!!! :wink: