Está en la página 1de 10

Uso de tablas

Lectura de datos en memoria de programa (Flash):


La memoria de programa puede ser leída, borrada y escrita durante la ejecución del programa. La operación que se utiliza
normalmente en tiempo de ejecución es la de lectura de tablas o datos almacenados en memoria de programa.

Existen dos formas de leer tablas de memoria de programa:

<DESPL.> indica la posición del elemento que se quiere leer. Su valor debe ser el doble del valor de la posición que queremos
leer.

<INICIO TABLA> dirección de inicio de la tabla (debe ser un valor par)

INCONVENIENTE: Cada byte de la tabla ocupa dos bytes en memoria.


Mediante la instrucción TABLRD:
Lectura de datos en memoria de programa:
Mediante la instrucción TABLRD:
Proceso:
1º Poner a ‘0’ el bit CFGS del registro EECON1 (CFGS=‘0’ acceso a la memoria EEPROM o a la memoria flash de programa /
CFGS=‘1’ acceso a la memoria de configuración)
2º Poner a ‘1’ el bit EEPGD del registro EECON1 (EEPGD=‘0’ acceso a la memoria EEPROM / EEPGD=‘1’ acceso a la memoria flash
de programa).
3º Inicializar el puntero de tabla (registros TBLPTRU, TBLPTRH, TBLPTRL)
4º Leer el dato apuntado por el puntero de tabla mediante la instrucción TBLRD.
El valor leído queda almacenado en el registro TABLAT. La instrucción TBLRD tiene 4 formatos:

Si se quiere leer una posición de memoria especifica dentro de la tabla, habrá que sumarle al puntero de tabla el índice que nos
lleve a dicha posición.
EEPGD: Bit de selección de acceso a memoria Flash/EERPOM:
EECON1 * EEPGD=‘0’: Acceso a memoria de datos EEPROM
* EEPGD=‘1’: Acceso a memoria Flash de programa
– CFGS: Bit de selección de acceso a memoria (Flash programa-EEPROM datos)/Configuración:
* CFGS=‘0’: Acceso a memoria de Flash de programa o a memoria de datos EEPROM
* CFGS=‘1’: Acceso a los registros de configuración de la memoria Flash
– FREE: Bit de habilitación del borrado de una fila en memoria Flash:
* FREE=‘0’: Activada únicamente la opción de lectura
* FREE=‘1’: Borrado de la fila de la memoria Flash de programa apuntada por TBLPTR en el
siguiente comando de escritura (el bit se pondrá a ‘0’ cuando la operación de borrado se haya
completado)
– WRERR: Bit de error de escritura en memoria Flash/EEPROM:
* WRERR=‘0’: La operación de escritura en la memoria Flash/EEPROM se ha llevado a cabo
correctamente
* WRERR=‘1’: Se ha producido un error en la operación de escritura en la memoria Flash/
EEPROM
– WREN: Bit de habilitación de la operación de escritura en memoria Flash/EEPROM:
* WREN=‘0’: Operación de escritura en la memoria Flash/EEPROM deshabilitada
* WREN=‘1’: Operación de escritura en la memoria Flash/EEPROM habilitada
WR: Bit de control de escritura en memoria Flash/EEPROM:
* WR=‘0’: La operación de escritura en la memoria Flash/EEPROM se ha completado
* WR=‘1’: Inicio de una operación de borrado/escritura en memoria EEPROM o de las operación de
borrado y/o escritura en memoria Flash (cuando la operación termina el bit se pone
automáticamente a ‘0’; por programa solo puede ponerse a ‘1’)
– RD: Bit de control de lectura en memoria EEPROM:
* RD=‘0’: La operación de lectura en la memoria EEPROM se ha completado
* RD=‘1’: Inicio de una operación de lectura en memoria EEPROM (cuando la operación termina el bit
se pone automáticamente a ‘0’; por programa solo puede ponerse a ‘1’)
7
8
9
10

También podría gustarte