TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: dogflu66 en 27 de Septiembre de 2010, 05:37:15

Título: Sleep y Ram del Pic
Publicado 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.
Título: Re: Sleep y Ram del Pic
Publicado por: Nocturno en 27 de Septiembre de 2010, 05:45:37
Confirmado
Título: Re: Sleep y Ram del Pic
Publicado por: dogflu66 en 27 de Septiembre de 2010, 05:52:41
Es algo que se supone y que tambien se deduce del datasheet, pero queria confirmarlo.  :mrgreen:

Gracias.
Título: Re: Sleep y Ram del Pic
Publicado por: migsantiago en 27 de Septiembre de 2010, 15:26:03
Hola Dogflu

La única forma de perder la ram es con un reset por software o hardware... o también por ruido electromagnético.
Título: Re: Sleep y Ram del Pic
Publicado por: Nocturno en 27 de Septiembre de 2010, 17:38:12
Creo que con un reset por software tampoco se pierde, Santiago.
Título: Re: Sleep y Ram del Pic
Publicado por: dogflu66 en 27 de Septiembre de 2010, 18:11:29
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.
Título: Re: Sleep y Ram del Pic
Publicado por: migsantiago en 27 de Septiembre de 2010, 18:40:11
Es cierto, qué atolondrado  :oops:
Título: Re: Sleep y Ram del Pic
Publicado por: migsantiago en 01 de Noviembre de 2010, 13:55:33
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/