Autor Tema: interrupcion vs grabado de la eeprom  (Leído 3777 veces)

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

Desconectado fastyx2

  • PIC16
  • ***
  • Mensajes: 109
interrupcion vs grabado de la eeprom
« en: 27 de Septiembre de 2007, 22:50:46 »
Amigos : tengo una duda y es la siguiente :

                                                                 Conviene desactivar las interrupciones que esten presentes en un programa cuando grabamos datos en la eeprom interna de un pic , para despues reestablecerlas?

desde ya gracias!!!

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: interrupcion vs grabado de la eeprom
« Respuesta #1 en: 27 de Septiembre de 2007, 23:11:40 »
La grabacion de un byte de la EEPROM requiere de 18 mseg, aproximadamente, donde el PIC no debe hacer otra cosa, entonces si hay que desactivar el resto de las interrupciones, dejando el procesador libre para efectuar el loop de lectura del bit de grabacion terminada... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: interrupcion vs grabado de la eeprom
« Respuesta #2 en: 28 de Septiembre de 2007, 07:30:18 »
Amigos : tengo una duda y es la siguiente :

                                                                 Conviene desactivar las interrupciones que esten presentes en un programa cuando grabamos datos en la eeprom interna de un pic , para despues reestablecerlas?

desde ya gracias!!!

No, no es necesario desactivarlas ni tampoco recomendable (desde mi punto de vista).  Solamente el GIE durante un par de instrucciones obligatorias pero luego no hace falta para nada.  El lugar donde se debe desactivar está mostrado en el datasheet asi que no hace falta que lo aclare  :)

Una grabación en la eeprom dura entre 4 a 8 mseg aprox.  Esto es típico pero puede variar.  Imaginate que si los que diseñan microcontroladores tuvieran que dejar todo apagado por ese tiempo, habría montones de aplicaciones que sencillamente no se podrían hacer.

Lo que yo hago es , si tengo que grabar varios bytes, mando a grabar el 1ro en el bucle principal, sigue actuando el software, luego cada vez que pasa por la rutina de grabación, verifica si el flag que terminó la grabación está restablecido.  En cuyo caso graba el siguiente byte y así sucesivamente.

Eso me permite ir grabando en la eeprom constantemente pero sin dejar de lado todo el resto del funcionamiento de la aplicación.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado fastyx2

  • PIC16
  • ***
  • Mensajes: 109
Re: interrupcion vs grabado de la eeprom
« Respuesta #3 en: 29 de Septiembre de 2007, 00:13:12 »
gracias por contestar!

>Yo tenía dudas en relacion a que pasa si en la mitad de una grabacion de la eeprom entra una interrupcion ,que pasa con ese dato : se graba bien o mal?

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: interrupcion vs grabado de la eeprom
« Respuesta #4 en: 29 de Septiembre de 2007, 11:04:22 »
Hola fastyx2. Hay que aclarar que una vez cargados los valores en los punteros indirectos, el CP, no graba en la EEPROM. De todas maneras si ocurre una interrupciòn en el inicio de la secuencia, mas precisamente en el momento de cargar los punteros indirectos, hay que asegurarce que el W no venga cargado con otro valor y continue grabando con un dato erroneo.

Me explico: Supongamos que estos cargando al W con 0X7C, para luego pasarlo al puntero indirecto EEDATA, pero antes de hacer esto ocurre una interrupciòn, cuando vuelva aca, vendrà con otro valor y se carga con un valor no deseado. Personalmente, desactivo las interrupciones en el momento de iniciar la secuencia correspondiente, y activàndolas en el momento de finalizaciòn de la secuencia. El pic tardarà X tiempo en grabar a la EEPROM, pero si aca ocurre una interruciòn, no pasa nada.
Cabe aclarar que si uno hace un programa muy bien echo, y si el programa lo permite, no harà falta desactivar las interrupciones.

Bueno, espero haberme echo entender.

Saludos.  :-/ :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: interrupcion vs grabado de la eeprom
« Respuesta #5 en: 04 de Octubre de 2007, 11:12:28 »
Lo que comentas leon es así para cualquier interrupción y se llama 'guardar el contexto', usualmente el WREG, STATUS, PCLATH y FSR aunque pudieran ser algunos más si es necesario.

De todas formas si uno usa interrupciones se entiende que conoce de esto y no es un problema que tenga que ver con la EEPROM sino con el PIC y con cualquier microcontrolador/microprocesador (mas allá de que algunos hagan grabado automático del contexto, siempre será de ciertos registros pero si nuestra aplicación requiera alguno más lo deberemos hacer a mano).


Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: interrupcion vs grabado de la eeprom
« Respuesta #6 en: 04 de Octubre de 2007, 20:05:46 »
Tienes mucha razón maunix. Al usar las interrupciones, hay que entenderlas al máximo.

Lo que núnca eschuché es "guardar el contexto", aclaro que hace poco empiezo a trabajar con los pic, sepanmen entender.

Saludos.  :-/ :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado fastyx2

  • PIC16
  • ***
  • Mensajes: 109
Re: interrupcion vs grabado de la eeprom
« Respuesta #7 en: 05 de Octubre de 2007, 08:19:38 »
Les pido mil disculpas a todos por haber utilizado las interrupciones sin ser un experto. Les prometo que no va a volver a suceder.

Me anoté en un curso sobre interrupciones y cuando me reciba vuelvo a preguntar!

Un abrazo

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: interrupcion vs grabado de la eeprom
« Respuesta #8 en: 05 de Octubre de 2007, 08:38:13 »
Por eso yo tome el atajo y le recomende no utilizar las interrupciones.

No hace falta que tratemos mal a nadie que recien se inicia Maunix. :shock:
De hecho yo comence de esa forma con la grabacion de la EEPROM, para luego aprender de interrupciones.

Todos en algun momento fuimos principiantes en el tema, ninguno de los hoy principiantes tiene la culpa de que en nuestra epoca de aprendizaje hubiera escasa o nula informacion para aprender.
Al menos yo lo hice en forma autodidacta, que lleva mas tiempo, pero graba los conceptos a fuego, despues de mil intentos en vano.

Fastyx2:
Esto es como en el boxeo, cada vez que te derriben, deberas levantarte y seguir, si quieres ganar.
Lo importante es que te levantes la misma cantidad de veces que te derriben...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: interrupcion vs grabado de la eeprom
« Respuesta #9 en: 05 de Octubre de 2007, 08:50:30 »
fastyx2 ¡¡no hay que pedir disculpas de nada, todos aprendemos de nuestros errores y de los de los demás!!

No hace falta que tratemos mal a nadie que recien se inicia Maunix. :shock:
:shock: :shock:

Por favor, les pido que me digan que frase que haya escrito se interpretó de mala forma porque la verdad no fue ni la más remota de mis intenciones!

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: interrupcion vs grabado de la eeprom
« Respuesta #10 en: 05 de Octubre de 2007, 08:55:36 »
Les pido mil disculpas a todos por haber utilizado las interrupciones sin ser un experto. Les prometo que no va a volver a suceder.

Me anoté en un curso sobre interrupciones y cuando me reciba vuelvo a preguntar!

Un abrazo

Hola fastyx2. Por favor, no me mal interpretes. Nadie nace sabiendo. Y te digo más, yo no soy ningún experto en las interrupciones, aún me sigo trompezando con las interrupciones y por eso me anime a decir que hay que conocer al máximo las interrupciones, porque yo me veo obligado a eso.vLo que uno puede hacer mientras aprende, es pedir consejo.

Saludos.  :-/ :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado fastyx2

  • PIC16
  • ***
  • Mensajes: 109
Re: interrupcion vs grabado de la eeprom
« Respuesta #11 en: 05 de Octubre de 2007, 13:12:34 »
personalmente siempre le tuve fobia a las interrupciones , de manera que evité utilizarlas , pero debo admitir que son muy utiles.

Ahora , yo particularmente soy una persona que no tiene la capacidad de entender los manuales de los pic cuando hablan de registros , de manera que trato de mantener mi zona de influencia en cuanto al diseño en la parte digamos " macro" de la informacion.

Piensen ustedes como se sentirian si cuando tienen una duda respecto de algo que comienzan a usar , alguien les diga : ey, para usar ese algo tenés que entenderlo al máximo" :shock:.

De todos modos , creo que el peor programa es el que no se hace , y la peor duda es la que no se disipa.

Concuerdo con Maunix en lo de lee, lee ,lee y despues pregunta , pero en algunos casos las ayudas que proveen los manuales son demasiado tecnicas para mi alcance , de manera que los consulto y les estoy por ello muy agradecido

Un Abrazo


Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: interrupcion vs grabado de la eeprom
« Respuesta #12 en: 05 de Octubre de 2007, 17:48:09 »
fastyx2 para ser concreto.

1) No hay problemas en usar la interrupción con la EEPROM, solo debes evitar su uso durante 2 instrucciones que están documentadas en el datasheet.  Ej. para un 16F87x


    bcf    INTCON,GIE
    movlw  55h
    movwf  EECON2
    movlw  AAh
    movwf  EECON2
    bsf    EECON1,WR
    bsf    INTCON,GIE




2) Tal vez el comentario que se hizo sobre que tengas cuidado con el WREG y demás fue por demás confuso, pero que no te sientas ofendido porque alguien te diga que debes entender bien algo antes de usarlo.  Al menos no fue con tal intensión.  Las interrupciones son potentes pero 'peligrosas' si no sabes usarlas.  Entonces, por eso sugiero que entiendas bien lo que es guardar el contexto antes de usarlas.  No solo para la EEPROM sino hablando de interrupciones en general, para los PICs o cualquier microcontrolador.  Si activas las interrupciones y no sabes bien qué es guardar el contexto o cómo guardarlo sino tu programa tiene grandes chances de perderse o tener un comportamiento errático.


 :) :)


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: interrupcion vs grabado de la eeprom
« Respuesta #13 en: 06 de Octubre de 2007, 07:52:49 »
Esto me gusta mas Mauricio!! :-/ :-/
Ahora si creo que es el camino de ayudar a alguien, que es el espiritu de este foro!!

Marcos :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: interrupcion vs grabado de la eeprom
« Respuesta #14 en: 06 de Octubre de 2007, 09:47:39 »
Esto me gusta mas Mauricio!! :-/ :-/
Ahora si creo que es el camino de ayudar a alguien, que es el espiritu de este foro!!

Marcos :mrgreen:

Pasa que el comentario del WREG no lo hice yo y a veces uno (hablando por mi) no sabe cómo responder si de una manera simple comenzando del principio o si de una manera más breve y acotada dando a entender algunas cosas.

 :mrgreen:
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything