TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: dpaladin en 29 de Mayo de 2008, 02:43:16
-
Hola
No soy nuevo en el foro, he estado leyendo durante un tiempo, pero hasta ahora decidi registrarme :D
Quisiera saber si es posible usar las interrupciones con el timer 0 que sean independientes del resto del programa, porque tengo el timer contando para un segundo pero cualquier delay o codigo un poco largo me retrasa el contador.
Alguna manera de hacerlo?
O alguien sabe como usar un RTC, he buscado pero no hayo como usarlo :(
Estoy haciendo un reloj en una matriz de leds y uso el proteus para simularlo, con un 16f84a
Y tambien, saben porque al simular con proteus el RA4 o T0CLK no funciona, he probado incluso con output_high(pin_a4); pero no me funciona :?
Gracias de antemano :)
saludos
-
Precisamente las interrupciones se caracterizan por ser independientes, emancipadas del programa principal, e ir a su bola. Si un retardo te afecta a la interrupción es que está pasando algo raro en tu programa.
Para resolver tu problema con RA4 mira esto: Problemas con RA4 (http://www.todopic.com.ar/foros/index.php?topic=8121.0)
-
Quizás dpaladin se refiere a que cualquier código un poco largo que introduce en la rutina de gestión de la propia interrupción le deteriora la cuenta de 1 segundo.
Si tienes la interrupción programada para que salte cada segundo, saltará cada segundo, ejecutará la rutina de gestión de la interrupción, y volverá a iniciar la cuenta de 1 segundo. Consecuentemente, si la rutina de gestión de la interrupción es larga, se introducirá un retraso.
Para evitarlo, procura que la rutina de la interrupción sea lo menor posible; generalmente se asigna simplemente un valor a una variable que actúa como bandera, y luego se detecta desde el programa principal que se ha activado esa bandera se actúa en consecuencia y se vuelve a resetear su valor.
Dpaladin, quizás si pusieras tu código podríamos ayudarte con más criterio.