PIC PROGRAMACION EN C
microcontroladores PIC
Introducción al MPLAB C-18
Andrés Prieto-Moreno Torres
andres@ifara.com
Características del MPLAB-C18
• Compilador ANSI C para microcontroladores PIC18.
• Aprovecha las modificaciones arquitecturales de la
familia de microcontroladores PIC18.
– Diferente distribución memoria de datos.
– Nuevas instrucciones de acceso a tablas en memoriade
programa
– Nuevos modos de direccionamiento.
• Admite ensamblador empotrado
• Integrado con el MPLAB-IDE
• Versión de DEMO gratuita
junio-2003
Ifara Tecnologías S.L.
2
1
Tipos de datos: Enteros
Tipo
Tamaño
Mínimo
Máximo
Char
8 bits
-128
127
Signed char
8 bits
-128
127
Unsigned char
8 bits
0
255
Int
16 bits
-3276832767
Unsigned int
16 bits
0
65535
32767
Short
16 bits
-32768
Unsigned short
16 bits
0
65535
Short long
24 bits
-8.388.608
8.388.607
Unsigned short long
24 bits
0
16.777.215
Long
32 bits
-2.147.483.648
2.147.483.647
Unsigned long
32 bits
0
4.294.967.295
junio-2003
Ifara Tecnologías S.L.
3
Tipos de datos:Reales
Tipo
Exponente
Mínimo
Exponente
Máximo
Float
32 bits
-126
128
Double
junio-2003
Tamaño
32 bits
-126
128
Ifara Tecnologías S.L.
4
2
Tipo de datos: Little Endian
Los datos de más de un byte de longitud, se
almacenan en memoria siguiendo el criterio
LITTLE ENDIAN, es decir los bytes menos
significativos ocupan las posiciones de
memoria másbajas.
0xDD
0x1001
0xCC
0x1001
0xBB
0x1003
Ejemplo:
0x1000
0xAA
#pragma idata mi_dato=0x1000
Long valor = 0xAABBCCDD;
junio-2003
Ifara Tecnologías S.L.
5
Tipos de datos: Storage I
MPLAB C18 maneja los modificadores establecidos por la norma ANSI:
1. Auto:
•
Las variables declaradas fuera de las funciones son globales y las declaradas
en lasfunciones son locales. El ámbito local tiene prioridad sobre el global.
•
Si no se inicializan el valor que toman es indefinido.
•
Las globales se comportan como estáticas en el bucle C018i.c (*)
2. Extern:
•
Indica que la variable declarada pertenece a otro módulo, por lo que no es
necesario reservar memoria para ella.
•
Dentro de un mismo fichero fuente sirve para acceder a unavariable aunque
todavía no se haya llegado a su declaración.
•
Se auto-inicializan a cero.
junio-2003
Ifara Tecnologías S.L.
6
3
Tipos de datos: Storage II
3. Register:
•
Indica que la variable declarada se debe guardar en uno de los registros del
procesador.
•
Si no es posible, se comporta como ‘Auto’
•
Se utiliza para optimizar el tiempo de ejecución dealgunas funciones.
4. Static:
•
Variables locales a una función que retienen su valor en llamadas sucesivas a
dicha función.
•
Hay que poner static delante de la declaración.
•
Se inicializan a valor cero.
•
Ahorra número de instrucciones para acceder a las variables.
junio-2003
Ifara Tecnologías S.L.
7
Tipos de datos: Storage III
4. Typedef:
•
Asigna unnuevo nombre a un tipo de datos.
Y además añade ...
5. Overlay:
•
Se aplica sobre variables locales.
•
Las declara estáticas pero se inicializan cada vez que se llama a la función.
•
Se permite que una misma posición de memoria pueda ser utilizada por
diferentes variables. Podemos ahorrar espacio de memoria.
•
El proceso es controlado por el linker.
junio-2003Ifara Tecnologías S.L.
8
4
Tipos de datos: Qualifiers I
1. Const: Contenido de la variable es fijo. ANSI C.
2. Volatile: El contenido de la variable puede cambiar. ANSI C.
MPLAB C-18 añade ...
3. Far:
•
Datos: La variable esta en un banco lejano, se necesitan instrucciones de
cambio de banco y/o acceso indirecto.
•
Código: Podemos acceder a objetos por encima de los 64K....
Regístrate para leer el documento completo.