Diferencia entre revisiones de «PROGMEM»

De Proyectos
Ir a la navegación Ir a la búsqueda
Página creada con «PROGMEM hace que una variable constante a la que se le aplica resida en la memoria flash en vez de la RAM. Asi podemos ahorrar RAM para las demás variables. = Declaración...»
 
Sin resumen de edición
Línea 1: Línea 1:
PROGMEM hace que una variable constante a la que se le aplica resida en la memoria flash en vez de la RAM. Asi podemos ahorrar RAM para las demás variables.
PROGMEM hace que una variable constante a la que se le aplica resida en la memoria flash en vez de la RAM. Asi podemos ahorrar RAM para las demás variables.
= Declaración de variables =
= AVR =
== Declaración de variables ==
Para alojar una variable constante en la memoria Flash se hace asi:
Para alojar una variable constante en la memoria Flash se hace asi:
  PROGMEM const tipoVariable nombreVariable = valoresIniciales;
  PROGMEM const tipoVariable nombreVariable = valoresIniciales;
Línea 13: Línea 14:
  const int a[] PROGMEM = {0,4,3,2};
  const int a[] PROGMEM = {0,4,3,2};


= Funciones de lectura =
== Funciones de lectura ==
*pgm_read_byte()
*pgm_read_byte()
**Lee un byte de la memoria Flash
**Lee un byte de la memoria Flash
Línea 24: Línea 25:
<br/>
<br/>
A cada una de estas funciones se le pasa una dirección de 16 bits que indican donde reside el elemento de la variable
A cada una de estas funciones se le pasa una dirección de 16 bits que indican donde reside el elemento de la variable
= Arduino =
== Declaración de variables ==
== Funciones de lectura ==

Revisión del 10:00 20 mar 2013

PROGMEM hace que una variable constante a la que se le aplica resida en la memoria flash en vez de la RAM. Asi podemos ahorrar RAM para las demás variables.

AVR

Declaración de variables

Para alojar una variable constante en la memoria Flash se hace asi:

PROGMEM const tipoVariable nombreVariable = valoresIniciales;

Por ejemplo:

PROGMEM const int a = 5;
PROGMEM const int a[] = {0,3,4,2};

También puede hacerse asi:

const int a[] PROGMEM = {0,4,3,2};

Funciones de lectura

  • pgm_read_byte()
    • Lee un byte de la memoria Flash
  • pgm_read_word()
    • Lee 2 bytes de la memoria Flash
  • pgm_read_dword()
    • Lee 4 bytes de la memoria Flash
  • pgm_read_float()
    • Lee un número de coma flotante de 4 bytes


A cada una de estas funciones se le pasa una dirección de 16 bits que indican donde reside el elemento de la variable

Arduino

Declaración de variables

Funciones de lectura