TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: dogflu66 en 27 de Septiembre de 2010, 05:37:15
-
Hola quería que me confirmaran si después de un SLEEP y su posterior activación el micro mantiene todos los datos de la Ram.
-
Confirmado
-
Es algo que se supone y que tambien se deduce del datasheet, pero queria confirmarlo. :mrgreen:
Gracias.
-
Hola Dogflu
La única forma de perder la ram es con un reset por software o hardware... o también por ruido electromagnético.
-
Creo que con un reset por software tampoco se pierde, Santiago.
-
El Reset no borra la Ram, eso si puedo confirmarlo yo. :D
PD. Lo unico que fastidia la Ram es el apagado de la alimentación.
-
Es cierto, qué atolondrado :oops:
-
Anoto lo siguiente para que no se me olvide y por si le es de utilidad a alguien más.
Variable global
Se inicializan solas al arrancar el programa, valor default = 0. También se pueden inicializar a lo que uno quiera.
Variable local
Su vida útil es igual a la vida de la función donde están. No se inicializan solas, hay que inicializarlas manualmente. Si se declaran como static, entonces se inicializan solas a 0 y se vuelven inmortales.
La keyword static en C tiene dos significados:
Sobre una variable local, la hace inmortal.
Sobre una variable global, la hace invisible por otros ensamblados C, sólo la puede ver el archivo C que la declara.
Para evitar que una variable global en C30 (PIC24/dsPIC) sea inicializada ante cualquier reset, se debe usar el atributo persistent.
char _PERSISTENT error; //una variable inmortal ante resets
Si no se declara así, el reset la renueva y pierde su contenido.
De donde saqué todo esto: http://www.careertechonline.com/c-language/visibility-lifetime-global-variables-c-language/