TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Agustina en 10 de Octubre de 2010, 04:17:04
-
Hola!!! como andan?
Bueno, les comento que estoy desarrollando un programa donde debo cambiar de oscilador en el medio de la ejecucion, osea, arranco a 48mhz con pll y luego paso a RC interno a 16mhz con 18F2550. El problema, es que al inciar el programa, esta definido el USE_delay(48000000), pero cuando cambio al oscilador interno, todos los delay duran 3 veces mas... intende nuevamente colocar USE_delay(16000000) luego de cambiar al oscilador interno, pero no paso nada...
algun consejo???
graccias! :g)
-
La solución más sencilla que se me ocurre es hacer USE_delay(16000000). Y en la parte que estás trabajando a 48MHz llamás tres veces a las rutinas de delay que necesites y luego cuando estás trabajando a 16MHz sólo la llamás una vez.
---------------
//aca trabajo a 48MHz
delay (1seg)
delay (1seg)
delay (1seg) //lo llamo 3 veces para lograr 1 seg
....
....
....
//aca trabajo a 16MHz
delay (1seg) //lo llamo sólo una vez
-
Ese es un problema de usar CCS :? Como use_delay lo utiliza en el momento de compilar y crear las demoras, no te quedará otra que hacer lo que dice AngelGris :shock:
Saludos!
-
Alguna vez intenté colocar el use delay a 4 luego a 8 y luego a 1 en cada bloque de código. La verdad no recuerdo si funcionó (eso fue antes mover directamente el OSSCON).