documentación para el trabajo con la plataforma guadalbot

Anuncio
DOCUMENTACIÓN PARA EL
TRABAJO CON LA
PLATAFORMA GUADALBOT
I.E.S VIRGEN DE LAS
NIEVES
Programación C para microcontroladores
Tema 1. Introducción
Índice de contenidos
Introducción..........................................................................................................................................2
Estructura de un programa en C...........................................................................................................3
Elementos fundamentales de un programa en C. Los comentarios......................................................3
Elementos fundamentales de un programa en C. Las sentencias o instrucciones................................4
Elementos fundamentales de un programa en C. Programas o funciones (bloques)............................4
Elementos fundamentales de un programa en C. Las directivas de preprocesado...............................5
1
Introducción
Un compilador de alto nivel es una herramienta de programación que nos traducirá el
programa escrito en su lenguaje (C, Basic, Pascal, etc) en código ensamblador y luego
generará los archivos de depuración (*.dbg, *.cof, *.d31, etc.) necesarios y, por supuesto,
el archivo ejecutable, código máquina o código objeto (*.hex). Además hace que el
programador no deba preocuparse por el hardware ni por el ensamblador nativo del
microcontrolador (µC).
Debemos aclarar antes de continuar que lo que vamos a ver en estos temas, aparte del
lenguaje, nada tiene que ver con la programación de ordenador tipo PC.
Algunos de los compiladores para microcontroladores son:
•
•
•
Hi-tech C
•
•
•
•
•
•
CCS C
Mikro C
MPLAB C18
•
•
Lo desarrolla la empresa htsoft.
Muy eficiente y soporta muy bien el lenguaje C estándar.
Su entorno IDE (Integrated Development Environment o Entorno de desarrollo
integrado) incluye el depurador ICD (In Circuit Debugger o depuración en
circuito).
Muy cercano al hardware del µC.
No dispone de librerías incorporadas.
Elevado precio y además el compilador para la familia PIC18 se vende por
separado.
Lo desarrolla la empresa ccsinfo.
Aisla al programador de los recursos del µC.
Además de las librerias estándar, como stdlib.h, stdio.h, string.h y math.h
incorpora librerias para controlar todos los módulos internos del PIC así como
muchos dispositivos externos.
Se comercializan tarjetas entrenadoras.
En un mismo paquete incluye los compiladores para:
◦ PIC10. Micros de 8 bits, 6 pines y bajas prestaciones.
◦ PIC12. Micros de 8 bits, 8 pines y bajas prestaciones.
◦ PIC16. Micros de 8 bits, variedad en número de pines y prestaciones
medias.
◦ PIC18. Micros de 8 bits, variedad en número de pines y prestaciones
altas.
•
Lo desarrolla y comercializa la empresa Mikroelektronika.
Muy similar en sus librerias al CCS pero en Mikro C están precompiladas y,
por tanto, no son modificables.
Se comercializan tarjetas entrenadoras.
•
•
Lo desarrolla y comercializa la empresa Microchip.
MPLAB es gratuito pero no lo es C18.
•
•
El compilador de C que vamos a utilizar es el PCW de la casa CCS Inc. Nosotros
desarrollaremos todos los ejemplos en CCS.
2
Estructura de un programa en C
De forma generalizada, la estructura de un programa en C la vemos en la figura 1.
Figura 1
Donde vemos que existen:
• Directivas de preprocesado: son las encargadas de controlar la conversión del
programa a código objeto.
• Programas o funciones: se trata de bloques de código o conjuntos de instrucciones.
Podemos poner todos los necesarios pero siempre debe existir uno definido como
principal y que es la denominada función main().
• Instrucciones: Van controlando el comportamiento del PIC en cualquier momento.
• Comentarios: Describen el programa.
Seguidamente vamos a describir cada uno de estos apartados.
Elementos fundamentales de un programa en C. Los comentarios
Los comentarios tienen el propósito de documentar y realizar aclaraciones en el código
del programa. Va a ser todo el texto que siga a las barritas // en una línea (comentarios
simples) y todo lo que está entre los signos /* y */. Se identifican fácilmente porque suelen
aparecer en color gris. Los comentarios son ignorados por el compilador por lo que no
pasan a formar parte del código objeto.
En la Figura 2 vemos posibles aplicaciones de los dos tipos de comentarios posibles
correspondiendo la zona sombreada a código válido.
3
Figura 2
Elementos fundamentales de un programa en C. Las sentencias o instrucciones
Un programa en C se ejecuta sentencia a sentencia. Salvo las excepciones (que
veremos) una sentencia debe finalizar siempre con punto y coma (;), siendo este símbolo
el que actua como separador de sentencias.
A continuación vemos la función main de un ejemplo en el que se hacen parpadear los
ocho diodos LED's conectados al puerto B.
void main()
{
while(TRUE) //Bucle infinito
{
output_b(0x00); //Puerto B a 0
delay_ms(500); //Retardo
output_b(0xFF); //Puerto B a 1
delay_ms(500);
}
}
Este código también lo podemos escribir, quitando los comentarios, de la forma siguiente:
void main(){while(TRUE){output_b(0x00);delay_ms(500);output_b(0xFF); delay_ms(500);}}
Pero evidentemente, aunque el funcionamiento es el mismo, resulta mucho más versatil la
primera opción para el trabajo cotidiano y, no digamos, si tenemos que editar el programa
pasado un tiempo. Vemos que los espacios, tabulaciones y comentarios sólo sirven para
dar un aspecto ordenado y aclarar el funcionamiento de nuestro código. Por tanto
deducimos que es una muy buena práctica de programación aprender a realizar código
legible.
Elementos fundamentales de un programa en C. Programas o funciones (bloques)
Un bloque de código delimita un grupo de instrucciones encerrado entre llaves ({ }) y,
normalmente, establece una función o un grupo de sentencias o bloque de programa.
Como podemos ver en el ejemplo anterior, la función main() tiene su bloque de código
encerrado entre llaves, así como la sentencia while(TRUE), que encierra sus
4
instrucciones entre llaves, como vemos en la figura 3. Además el editor asociado al
compilador nos va a resaltar cuáles son las llaves de inicio y de cierre de cada bloque, lo
que nos ayudará bastante en nuestro trabajo.
Figura 3
Se dice que el lenguaje de programación C es un lenguaje orientado a funciones, y tanto
es así que cualquier programa C debe contener como mínimo una función, la main().
Las funciones nos van a servir para una mejor estructuración de los programas ya que
van a permitir definir tareas concretas que podremos ejecutar simplemente llamandolas.
Elementos fundamentales de un programa en C. Las directivas de preprocesado
Habitualmente se nombran como directivas para el preprocesador, dado que se evaluan
antes de compilar el programa. Estas directivas en si mismas no son código ejecutable,
simplemente suelen ser indicaciones sobre cómo se compilará el código.
Normalmente las directivas del ANSI C o C estándar son soportadas por los compiladores
C para PIC, como por ejemplo #include, #define, #if, #elif, #endif, etc.
Además, un compilador especifico tendrá sus propias directivas.
En temas posteriores estudiaremos a fondo cada uno de los apartados reseñados hasta
ahora.
5
Descargar