TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: fastyx en 13 de Febrero de 2006, 05:23:00
-
Amigos: no pude encontrar en ningun libro aclaracion de como trabajan los timers
cuando se producen interrupciones
por ejemplo: si uso interrupciones en timer 0 timer 1 y timer2,estas se producen en forma paralela y simultanea por los distintos pines, o debo pensar en forma secuencial?
espero puedan ayudarme ya que tengo tremendo lio en la cabeza!!
-
Pues depende básicamente de que PIC estes utilizando y qué prioridad asignes a cada una de as interrupciones.
En pics de gama media, las interrupciones no tienen prioridad, por lo que mientras se atiende a una no se puede atender a otra, por lo que si salta la interrupcion del timer0 y mientras la atiendes se produce la interrupcion del timer1, esta segunda no se atenderá hasta que finaliza la primera.
En los dspics puedes asignar un nivel de prioridad a cada una de las interrupciones, por lo que si se produce una interrupción de nivel mayor a la que se está atendiendo, se para la ejecuión de la primera.
En un pic de gama media, no se decirte si 2 interrupciones se producen simultáneamente, a cual se atiende primero. Dependerá del compilador que se use y de qué flag se comprueba primero en la rutina de atención de interrucpion.
-
Cuando se entra en una interrupción el bit global GIE se deshabilita con lo cual no se atiende ninguna interrupción hasta que se sale de la función de atención a la interrupción. Por lo tanto ejecutarse en forma paralela, no.
Si 2 o más interrupciones te llegan al mismo tiempo mediante #PRIORITY puedes establecer cual es la primera que se atenderá.
Un saludo
PD. Antonio me ganaste por un pelo
-
gracias muchachos!!!!
es que estoy bregando con un puente de mosfet que controla un motor de 10 amper
que debe girar 100mseg para cada lado(una bordadora textil),y debo inyectar segun sea pwm en los highside del driver de los mosfet de uno u otro lado para hacer la inversion de giro.
desde ya muchas gracias!!!!
-
gracias muchachos!!!!
es que estoy bregando con un puente de mosfet que controla un motor de 10 amper
que debe girar 100mseg para cada lado(una bordadora textil),y debo inyectar segun sea pwm en los highside del driver de los mosfet de uno u otro lado para hacer la inversion de giro.
desde ya muchas gracias!!!!