Autor Tema: Duda con interrupción.  (Leído 5300 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado zerc79

  • PIC10
  • *
  • Mensajes: 43
Re: Duda con interrupción.
« Respuesta #15 en: 17 de Junio de 2009, 10:52:42 »
OK Gracias Leon Pic

Voy a leer y te cuento como me va...

 :-/
No hay ninguna cosa seria que no se pueda decir con una sonrisa

Desconectado zerc79

  • PIC10
  • *
  • Mensajes: 43
Re: Duda con interrupción.
« Respuesta #16 en: 17 de Junio de 2009, 11:08:16 »
PUes no era exactamente lo que necesitaba pero como el conocimiento nunca se pierde es bueno saber mas....

Alli explican que se pueden originar varias interrupciones internas y externas, oviamente cada una genera un flag en los registros de INTCON Y PIR y pues dependiendo de esos flags se puede establecer la rutina deseada, oviamente en el orden que tu revises los flags estaras dando prioridad a algunas interrupciones....

Pero como interrupcion externa los de gama media solo tienen una (caso que es el mio con un 16f873a) y en el momento de entrar a la interrupcion son deshabilitadas para direccionar al vector 0X04 desactivando el GIE pero los flags de las interrupciones internas siguen funcionando y se marcaran para poderlos revisar en la rutina de interrupciones....

Gracias de todos modos por el dato.
No hay ninguna cosa seria que no se pueda decir con una sonrisa

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Duda con interrupción.
« Respuesta #17 en: 17 de Junio de 2009, 11:17:11 »
Como ya te han dicho desde una interrupción no se puede direccionar a una parte del código especifica, así que quedan 2 soluciones a tu problema. Una sería ejecutar el código dentro de la interrupción, y que tan largo puede ser el código dentro de ella? Pues la única limitación que veo es que si tenes una interrupción cada 1ms, tu rutina no puede ser mayor a eso, sino estarás perdiendo eventos. La segunda es tratar de reducir el tiempo del bucle. Porque se demora tanto en realizar el bucle?
No contesto mensajes privados, las consultas en el foro

Desconectado zerc79

  • PIC10
  • *
  • Mensajes: 43
Re: Duda con interrupción.
« Respuesta #18 en: 17 de Junio de 2009, 11:35:10 »
Estoy tomando registro de temp y lo llevo cada 20 seg guardandolo en un eeprom externa, tomarlo en ciclos mas cortos me llenaria de datos y no es la idea, entonces realizo un bucle y al final coloco un delay de 20 seg y al volver a reanudar el bucle verifico los bits de mi variable para ver si entro a alguna interrupcion durante este tiempo, si asi sucedio entro a otra rutina para poder visualizar los datos de la eeprom por el lcd y ver un comportamiento promedio , luego salta nuevamente al bucle de toma de temperaturas.....
Pensé que era posible realizarlo en forma mas rapida pero creo que no lo es....

Lei en algun otro post la posibilidad en el caso de escritura a eeprom externa por I2C de asignar a otros pines las funciones de SDA Y SCK, saben si se pueden duplicar los puertos de interrupcion...

(creo que no si no alguien ya hubiera contestado.. pero por si acas   :lol:   :D)
No hay ninguna cosa seria que no se pueda decir con una sonrisa

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Duda con interrupción.
« Respuesta #19 en: 17 de Junio de 2009, 12:12:59 »
Una solución sencilla es colocar una demora de menor valor, por ejemplo 100ms y utilizar una variable para contar la cantidad de veces, entonces cuando este llegue a 200 (20seg) guardas en la memoria, pero tui bucle se repite cada 100ms.

Lo de cambiar los pines de I2C, si estas usando el hardware del PIC no puedes cambiar nada, pero si lo estas haciendo por software puedes elegir lo que quieras.
No contesto mensajes privados, las consultas en el foro

Desconectado zerc79

  • PIC10
  • *
  • Mensajes: 43
Re: Duda con interrupción.
« Respuesta #20 en: 17 de Junio de 2009, 12:28:34 »
Una solución sencilla es colocar una demora de menor valor, por ejemplo 100ms y utilizar una variable para contar la cantidad de veces, entonces cuando este llegue a 200 (20seg) guardas en la memoria, pero tui bucle se repite cada 100ms.

Lo de cambiar los pines de I2C, si estas usando el hardware del PIC no puedes cambiar nada, pero si lo estas haciendo por software puedes elegir lo que quieras.

Sencilla y practica para lo que necesito....
sip definitivamente sera la solucion mientras encuentro algo mas.....   :P
Gracias suky por tu tiempo y conocimientos... :-/
No hay ninguna cosa seria que no se pueda decir con una sonrisa


 

anything