Noticias:

Grupo en telegram, del foro de meteorología fácil: https://t.me/meteorologiafacil

Para mas detalles, puedes visitar el siguiente tema http://www.meteorologiafacil.com.ar/foros/index.php?topic=1608.0

Espero que les sea de mucha utilidad.

Menú Principal

Salvar el contenido de W, Status, FSR, Option REG.

Iniciado por David Met, Noviembre 26, 2011, 04:41:10 PM

Tema anterior - Siguiente tema

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

David Met

En realidad, son dos dudas que tengo.
Cuando se produce una interrupción, JALv2, ¿salva los contenidos de W; STATUS; FSR, OPTION REG?
En caso negativo, esto quiere decir que hay que hacerlo uno propio. Esto me genera otra duda, ¿cómo hago para indicarle a JALv2 que yo quiero guardar una variable en la posición h'70'?

Como estoy trabajando con el 16F877, la posición de la RAM h'70' se puede acceder desde cualquier banco. Esto es muy útil para guardar los registros antes mencionados y por lo tanto quiero guardarlos ahí cuando se activa una interrupción y restaurarlos antes de salir.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

David Met

Indicar la posición de una variable, en la RAM es muy fácil. Como siempre, las respuestas fácil, son las más difíciles de encontrar.

Indicar la posición de una variable, en la RAM es muy fácil. Como siempre, las respuestas fácil, son las más difíciles de encontrar.

Por ejemplo, queremos llamar una variable salvar_w y guardarla en la posición 0x70, se hace de la siguiente manera:

var volatile byte salvar_w at  {0x70}

var = variable.
volatile = (realmente, no la entiendo. Al final de la respuesta pondré la traducción)(*).
byte  es el tipo de variable, pudiendo ser bit, byte, o sbyte.
salvar_w es el nombre de la varible.
at = asginador.
{} = dirección de la memoria.
0x70 = dirección a la que se desea guardar.

Ahora solo me falta saber si JALv2 salva los registros mencionados en una interrupción y lo restaura al salir.

(*)
La palabra VOLATILE garantiza que una variable que es o usada o asignada no será optimizada. y la variable solo se podrá leer cuando una expresión se está evaluando.

Normalmente, si una variable se le asigna un valor no utilizado, la asignación se elimina y la variable no se ha asignado ningún espacio. Si la asignación es una expresión "podrá" ser completamente evaluado. Si se utiliza una variable, pero no asignado, todas las instancias de la variable será reemplazado con la constante 0 (del tipo adecuado) y la variable no se le asignará un espacio.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

David Met

Perdón a todos. Me olvidé de comentar que si, JAL salva el contenido de W en la memoria RAM en la posición 0x70, para luego salvar STATUS y demás registros muy importantes ante una interrupción. Luego, al salir los restaura en forma correcta.
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.