fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Datos no volátiles
 
Avisos
Vaciar todo

Datos no volátiles

7 Respuestas
2 Usuarios
0 Reactions
3,378 Visitas
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

¡Muy buenas gentecilla!

Hace un monton que no tengo ninguna duda existencial de este tipo... me temo que las clases me quitan demasiado tiempo...

Creo que por el nombre del hilo es facil averiguar lo que nnecesito...
Programando en CCS, ¿cómo puedo guardar variables no volátiles?

Será una int8 en forma de array, que durante un proceso será Escritura/Lectura, y durante otro, más habitual, será solo de lectura...

¿Qué me sugerís?

Muuuuuuchas gracias por la ayuda.
Mif

Responder
6 respuestas
mif
Respuestas: 1095
 Mif
Topic starter
(@mif)
Noble Member
Registrado: hace 19 años

Gracias Heli.
Ya habia pensado lo de la bateria de buckup, pero me resulto mas lógico usar rom, ya que no va a haber demasiadas grabaciones, y si llega el caso de que no funcione, pillo el pic y lo cambio, claro, que para eso son samples.
Creo que hare lo mismo que tu, al arrancar leera el array y lo pasare a RAM, porque si no es un coñazo estar leyendo constantemente de EEPROM.
Oye, al usar solo:
write_eeprom(int8 dirección, int8 dato);
entiendo que "dato" es el dato a guardar, un AF por ejemplo, pero que direccion le debo pasar?

Responder
heli
Respuestas: 748
 Heli
(@heli)
Ardero
Registrado: hace 19 años

La dirección que tienes que pasar a esas funciones es la dirección de la EEPROM en que quieres grabar o leer los datos. El primer byte de la EEPROM es 0 y el último en el 16F84 es 3F hex o 63 en decimal, en el 16F682 es 7F hex o 127 decimal.
Tienes que llevar tu mismo la cuenta de cuantos datos has grabado y donde, para que no se pisen unos a otros.
Si haces WriteArrayEeprom (12, &array[0], 7); ocuparás las posiciones de EEPROM desde la 12 a la 18 (7, la 12 y 6 más). La siguiente escritura tendrá que ser a partir de la dirección 19: WriteArrayEeprom (19, &OttroArray[0], 3);
Con write_eeprom(int8 dirección, int8 dato); como solo graba un byte basta con poner direcciones consecutivas...

Responder
Página 2 / 2
Compartir: