Diferencia entre revisiones de «Programación C y C++»

De Proyectos
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
 
(No se muestran 2 ediciones intermedias del mismo usuario)
Línea 5: Línea 5:
= [[Variables]] =
= [[Variables]] =
= [[PROGMEM]] =
= [[PROGMEM]] =
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.
= [[Casting]] =
== 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
<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
 
= Otros =
= Otros =
*casting
*typedf -> cambia nombre del tipo a otro nombre personalizado. Ej. typedef strcut contacto contacto_t; //Ahora escribiendo contacto_t estoy escribiendo en realidad struct contacto.
*typedf -> cambia nombre del tipo a otro nombre personalizado. Ej. typedef strcut contacto contacto_t; //Ahora escribiendo contacto_t estoy escribiendo en realidad struct contacto.
*extern
*PROGMEM
**http://www.cursomicros.com/avr/lenguaje-c/datos-en-flash.html -> Buena explicación de arrays constantes y PROGMEM
**http://tom-itx.dyndns.org:81/~webpage/abcminiuser/articles/progmem_basics_index.php


= Documentación =
= Documentación =

Revisión actual - 10:54 21 mar 2013