• Embed Doc
  • Readcast
  • Collections
  • 2
    CommentGo Back
Download
 
 MMIICCRROOCCHHIIPPMMPPLLAABBCC1188CCCCOOMMPPIILLEERR GGUUÍ Í AADDEELLEESSTTUUDDIIAANNTTEE 
 
 Manual del compilador Microchip C18 Laboratorio de Sistemas Basados en Microprocesador y Sistemas Electrónicos Digitales
2
 
1. Tipos de datos 
Tipos enteros
El compilador C18 soporta los tipos de datos enteros del estándar ANSI. Losrangos de cada tipo se muestran a continuación:
Tipo tamaño Rangochar 8 bits -128 127Signed char 8 bits -128 127Unsigned char 8 bits 0 255int 16 bits -32,768 32,767Unsigned int 16 bits 0 65,535short 16 bits -32,768 32,767Unsigned short 16 bits 0 65,535Short long 24 bits -8,388,608 8,388,607Unsigned short long 24 bits 0 16,777,215long 32 bits -2,147,483,648 2,147,483,647Unsigned long 32 bits 0 4,294,967,295
Tipos en punto flotante
Se admiten formatos de punto flotante double o float, basados en el estándar IEEE-754. A continuación se muestran los rangos de ambos tipos:
Tipo Bits Exp. Rangofloat 32 bits -126 128 2
 –126
 
1.17549435e - 38 2
128
* (2-2
 –15
)
6.80564693e + 38double 32 bits -126 128 2
 –126
 
1.17549435e - 38 2
128
* (2-2
 –15
)
6.80564693e +38
Almacenamiento de los datos “endianness”
El ordenamiento de los datos en una variable multi-byte se realiza en little-endian. El byte menos significativo ocupa la posición más baja.
#pragma idata test=0x0200long l=0xAABBCCDD;
Da como resultado:
Dirección 0x0200 0x0201 0x0202 0x0203Contenido
0xDD 0xCC 0xBB 0xAA
 
 Manual del compilador Microchip C18 Laboratorio de Sistemas Basados en Microprocesador y Sistemas Electrónicos Digitales
3
 
2. Clases de almacenamiento 
Se soportan los siguientes tipos de almacenamiento definido en el estándar ANSI: auto,extern, register, static y typedef.
Almacenamiento overlay
Además se introduce el almacenamiento
overlay
, que se aplica a variables locales sólono se aplica a parámetros de funciones, definición de funciones o variables globales. Ellinker MPLINK intentará superponer variables locales tipo
overlay
sobre las mismas posiciones de memoria para funciones que no pueden activarse a la vez. Por ejemplo:
int f (void){overlay int x = 1;return x;}int g (void){overlay int y = 2;return y;}
 
Si f y g nunca se activan juntas x e y pueden compartir la mismas posiciones dememoria. La ventaja de usar 
ovelays
es que estas variables se sitúan estáticamente loque significa que es necesario menos instrucciones para acceder a ellas, mientras que lacantidad de memoria requerida es menor que en el caso de haberlas definidodirectamente como
static
, al estar superpuestas.Una función recursiva no puede contener variables de tipo
overlays.
 El formato por defecto para las variables locales es auto. Esto puede ser modificadoexplícitamente mediante los prefijos
static
u
overlay
.
Argumentos para funciones
Los parámetros para las funciones pueden ser almacenados como auto o static. Un parámetro auto se almacena en la pila software que implementa el compilador. Unostatic se considera global y habilita el acceso directo generando menos código. Los parámetros static son posibles sólo si el compilador esta en modo no-extendido. Los parámetros por defecto se definen como auto.
3. Calificadores del almacenamiento 
Además de los calificadores ANSI (const, volatile) el MPLAB introduce los siguientestipos nuevos: far, near, rom y ram. A continuación se muestra la posición donde sealmacena la variable asociada en función del calificador.
rom ram 
far
Cualquier posición de memoria de Cualquier posición de memoria de
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...

Una excelente guia. Gracias

07 / 04 / 2010This doucment made it onto the Rising List!
You must be to leave a comment.
Submit
Characters: ...