TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: calcius en 13 de Octubre de 2004, 08:18:00
-
buenas estoy desarrollando un programa para controlar servomotores, usando las instrucciones delay_us(). el problema es que cuando quiero que en lugar de ser un valor el que le doy a esa función intento que sea una variable usanto delay_us(variable) el problema es que si pongo esa variable de tipo int, el programa no funciona, porque supongo que algo estoy haciendo mal y aunque he mirado la ayuda del ccs no me queda claro de que tipo la tengo que declarar o como puedo hacer eso.espero vuestras propuestas...

pd: el rango de valores que uso es de 0-20000 us
-
Je, je eso también me pasó a mí en su día y perdí mucho tiempo hasta que leí detenidamente el manual.
Si pones una variable (simple o booleana), dentro de delay_ms o delay_us su valor no debe de sobrepasar 255.
Un saludo
-
me paso algo parecido con los long y tome la costumbre de usar siempre int8, int16 o int32 q no falla
pero en tu caso mire la doc. de la funcion y alli dice q variables solo de 0 a 255 y constantes de 0 a 65535
asi q imagino q ese es ru problema.
Suerte.
-
Bueno, yo te puedo decir que los delay_us() segun la version, hace lo que quiere, osea que son ademas la impresicion, te recomiendo usar un timer para lo que estas haciendo, con los delay_us() y delay_ms() resultan muy comodos pero solo sirven para hacerse mas complicado problema, por eso evidentemente no entan estas funciones implementadas en otros compiladores.
saludoS
ARIEL
-
pues probe declarando la variable como int16 y 32, pero lo que no me habia dado cuenta es que iba solo hasta 255, lo de si son imprecisos no lo e llegado a comprobar todabia, pero de momento me sacaron del apuro, la verdad creo que lo mejor seria usar el PWM pero no tengo ni idea de por donde cojerlo, sabeis de algun ejemplo o algo para empezar? ya sabreis de sobra que lo que más cuesta de estas cosas cuando no las conoces es empezar... que programador no ha echo en sus comienzos un HOLA MUNDO!!!!!! je je je