Autor Tema: Guardar lecturas en tabla para releer luego...¿?  (Leído 1837 veces)

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

Desconectado the_nitro

  • PIC12
  • **
  • Mensajes: 53
Guardar lecturas en tabla para releer luego...¿?
« en: 15 de Junio de 2004, 01:05:00 »
 Hola a todos de nuevo, os abordo con una nueva duda, tonta seguramente, pero duda.
  Necesito guardar un nº conocido de valores en una tabla, para luego volver a esta y leer de nuevo los valores que introduje. Antes nunca se me planteó esta necesidad, y me pregunto si funcionaría hacer algo como esto....

v1  res  1
v2  res  1
v3  res  1
v4  res  1

....
....



;meto los valores en las vbles
    movwf    v1
    movwf    v2
    movwf    v3
    movwf    v4

........
.........
.......
;Y para leerlos uso una tabla

TABLA    addwf    pcl,f
              retlw      v1
              retlw      v2
              retlw      v3
              retlw      v4
             

Podría hacerse asi??
 Saludos y gracias

Desconectado Meybel

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 60
RE: Guardar lecturas en tabla para releer luego...¿?
« Respuesta #1 en: 15 de Junio de 2004, 02:42:00 »
El programa que has puesto no funcionaría porque la instrucción "retlw " devuelve un valor grabado en la memoria de programa, y tú las variables la has guardado en la memoria de datos con la instrucción "movwf v1".

Si la tabla va a estar permanentemente grabada en ROM te aconsejo utilizar la directiva DT.

Ejemplo:

Tabla
    addwf   PCL,F
    DT  v1, v2, v3, ...
....

; Para leer la tabla:

    movlw 2
    call Tabla  ; Leería la v2.



Si es una tabla con variables que cambian durante el programa debes guardarla en memoria de Datos RAM y te recomiento utilizar "Direccionamiento Indirecto." Por ejemplo:


Temporal EQU 0x0C
Tabla EQU 0x0D   ; La tabla se guardará a partir de la posición
                            ; 0x0D de memoria RAM de datos.


......
movf v1, W  ; Para escribir la primera variable en la tabla.
call EscribirTabla
......
......

EscribirTabla  ; Subrutina para escribir en tabla.
movwf Temporal
movlw Tabla
movwf  FSR    ; Apunta al comienzo de la tabla.
movf Temporal,W
movwf INDF    ; Escribe el dato en la tabla.
incf FSR          ; Apunta a la siguiente posición de la tabla.
return


etc.


Espero te sirva de ayuda.


Desconectado the_nitro

  • PIC12
  • **
  • Mensajes: 53
RE: Guardar lecturas en tabla para releer luego...¿?
« Respuesta #2 en: 30 de Junio de 2004, 20:42:00 »
 Muchas Gracias Meybel por tu interes y sobretodo ayuda
Me ha servido de mucho tu ayuda, gracias de nuevo, siento no haber contestado antes.
  Saludos.


 

anything