Sintaxis
EDATA Constante1 { ,...Constanten etc }
Detalles
Almacena constantes o cadenas directamente en la memoria EEPROM de PICmicro.
Operators
- Constante1, Constanten - valores a ser almacenados en la memoria EEPROM, los valores son almacenados a partir de la dirección inicial 0. Esta instrucción no permite especificar la dirección de memoria de almacenamiento de los datos. Para almacenar en una dirección especifica diferente a la cero (0), es necesario usar el comando EWrite .
' H','e','l','l','o' en la memoria EEPROM iniciando en la dirección 0.
EDATA 1000 , 20 , $FF , 001111 , "Hello"
Nota
Valores de 16-bit, 32-bit y punto flotante, pueden ser almacenados en la EEPROM, y estos son colocados de manera tal que el byte menos significativo ocupe la primera dirección de memoria.
Por ejemplo, si el valor a almacenar es 1000 con la sentencia Edata, entonces la instrucción seria la siguiente :
EDATA 1000
Los datos en la EEPROM quedan así : 232, 03
Tabla de Direccionamiento (EDATA)
Los de la memoria EEPROM inicia en la dirección 0 y finaliza en un máximo de acuerdo a la capacidad de PICmicro. En raras ocasiones la información almacenada en la EEPROM es una sola pieza continua de informacion, por el contrario, normamalmente es usada para almacenar valores o cadenas de texto, de manera tal que acceder a cada uno de estos es esencial. Considerando el siguiente codigo :
EDATA "HOLA"
EDATA "MUNDO"
El texto "HOLA" sera almacenado a partir de la direccion, contiene 4 caracteres y cada uno ocupa un byte de la memoria EEPROM, de esta manera el texto "MUNDO" comienza a almacenarse a partir de la dirección 4, y contiene 5 caracteres; asi que la proxima cadena de texto a alamecenar estara localizada a partir de la direccion 9. Para acceder de manera separada a cada una de las cadenas de textos o valores es necesario mantener un registro de la direccion de inicio o cabezera y final de cada cadena de texto.
Para esto un nombre de identificacion antes de la sentencia EDATA permite al compilador hacer el conteo de bytes. El compilador almacena las direcciones asociada a cada texto o valor, con un nombre de identificacion en la tabla.
Por Ejemplo :
HOLA_TEXT EDATA "HOLA"
MUNDO_TEXT EDATA "MUNDO"
El nombre HOLA_TEXT is ahora reconocido por el compilado como una constante, y de ser la primera sentencia EDATA, esta tomara el valor de 0, refiriendose a la direccion de inicio de la cadena "HOLA".
MUNDO_TEXT es una contante y mantendra un valor de 4, el cual se refiere a la direccion de inicio de la cadena d etexto "MUNDO".
Note que el identificador debe ser localizado en la misma linea que la directiva EDATA.
Cualquier Directiva EDATA debe ser colocada en la cabecera del Programa, al igual que los simbolos, estos nombre son reconocidos en el resto del programa cada vez que estos aparezcan .
El ejemplo de abajo ilustra el uso del direccionamiento de la EEPROM:
' Muestra dos textos almacenados en la memoria EEPROM
Include "PROTON_4.INC"
Dim CHAR as Byte ' Carácter
Dim CHARPOS as Byte ' Dirección
HELLO EDATA "HOLA ",0 ' Crea una cadena de Texto en la EEPROM. terminación.
WORLD EDATA "MUNDO",0 ' Crea una cadena de Texto en la EEPROM. terminación.
Delayms 200 ' retardo 200 ms
Cls ' Limpia LCD
CHARPOS = HELLO ' CHARPOS <= direccion de inicio del texto "HOLA"
Gosub DISPLAY_TEXT ' Muestra el texto "HOLA"
CHARPOS = WORLD ' CHARPOS <= direccion de inicio del texto "MUNDO"
Gosub DISPLAY_TEXT ' Muestra el texto "MUNDO"
Stop ' Fin
' subrutina pata leer y mostrar el texto almacenado en la dirección correspondiente al valor de CHARPOS
DISPLAY_TEXT:
While 1 = 1 ' Bucle infinito
CHAR = EREAD CHARPOS ' Lee EEPROM
If CHAR = 0 Then Break ' Sale del Bucle cuando CHAR = 0 (terminación)
Print CHAR ' Muestra el caracter
Inc CHARPOS ' Incrementa CHARPOS
Wend ' Cierra bucle While
Return ' Sale de la subrutina