El MPLAB II - IES Antonio Machado

Anuncio
Estructura de un programa escrito
en C para el compilador PIC C
Introducción
Para crear un programa independientemente, del tipo y
lenguaje utilizado hay que seguir los siguientes pasos:
1. Especificar lo que deseamos que haga el
programa.
2. Realizar el organigrama
3. Escribir el código Fuente en ensamblador, C, etc.
4. Ensamblar o Compilar
5. Depurar los errores
En nuestro caso particularizamos para un programa
escrito en C y en el entorno de PIC C
CCFF D.P.E. MÓDULO DE PROYECTOS
2
Todos los programas escritos en C tienen una estructura como la
que sigue:
/* comentarios*/
cabecera
declaraciones globales
prototipos de funciones
main(){
variables locales;
bloque de sentencias;
llamadas a las funciones;
}
funcion_1{
…….
}
………
funcion_n{
……
CCFF D.P.E. MÓDULO DE PROYECTOS
}
3
Hay que tener en cuenta que todo lo descrito anteriormente es
exportable a cualquier compilador, con mínimas diferencias.
Expliquemos cada uno de los bloques descritos anteriormente
1.
/* comentarios*/
En este bloque hacemos una breve descripción de la finalidad
del programa, debe comenzar con /* y acabar con */ .
Tenga en cuenta que los comentarios no generan código
ejecutable ni ocupan espacio de memoria, y que son
obligatorios para todo programador, en algunos compiladores
un comentario de una línea es todo lo que sigue a dos
caracteres //
Ejemplo :
/* parpadeo.c Programa que hace parpadear los leds
conectados al puerto b con una cadencia de 1 segundo, un
comentario puede ocupar mas de un línea */
CCFF D.P.E. MÓDULO DE PROYECTOS
4
2.
Cabecera (header)
En esta sección se incluyen los archivos de cabecera y las
directivas.
ej. :
#include <16F84.h> /* tipo de PIC que utilizaremos*/
#include “fichero.h” /*fichero de cabecera*/
#use delay (clock= 4000000) /*directiva reloj de 4MHz*/
#use fast_io (a)
#use fast_io(b)
/*directiva*/
/*directiva*/
El símbolo # es una orden para el preprocesador
El efecto que se produce con #include es el mismo que si
incluyéramos todo el código del fichero *.h al principio
del programa.
CCFF D.P.E. MÓDULO DE PROYECTOS
5
3. Declaraciones globales
Una variable es una posición de memoria con nombre,
que contendrá un valor que puede ser modificado por el
programa.
En C antes de utilizar una variable es obligatorio
declararla.
Las variables que se declaran dentro de una función solo
tienen existencia en ella, por lo que se les denomina
LOCALES mientras que las que se declaran fuera de ellas
se denominan GLOBALES y pueden ser utilizadas en
cualquier parte del código.
CCFF D.P.E. MÓDULO DE PROYECTOS
6
EJ.:
byte contador; // contador es una variable global y es del tipo byte
LONG valor;
//aquí almacenamos el valor para
INT entrada;
//variable que almacena situación del puerto
INT entrada_aux;
//variable auxiliar para cuando hacemos la
//máscara
INT i= 6;
//variable para movernos en el array
LONG modula[7]={300, 400, 500, 600, 700, 800, 100};
/*array donde tenemos los valores*/
byte, LONG, INT, indican el tipo (tamaño) de la variable.
CCFF D.P.E. MÓDULO DE PROYECTOS
7
4.
Prototipos de funciones
En este apartado se indican las funciones que posteriormente
serán llamadas, desde main()
EJ.:
/* DECLARACIÓN DE FUNCIONES */
void derecha (void); // ilumina los leds de derecha a izquierdas
void izquierda (void); // ilumina los leds de izdas a derechas
void fuera-dentro (void); // ilumina los leds de fuera hacia dentro
void dentro-fuera (void); // ilumina los leds de dentro hacia fuera
CCFF D.P.E. MÓDULO DE PROYECTOS
8
4.
main()
{
int captura;
// variable local a main()
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
set_tris_a(0x1f);
set_tris_b(0x00);
while (true){
captura=input_a();
output_b(captura);
}
}
Es la función principal y solo existe una (generalmente, es
la primera que se escribe). Esta función permite la
llamada a otras funciones ( ), que devuelven resultados
que serán utilizados por el programa principal main ( ).
CCFF D.P.E. MÓDULO DE PROYECTOS
9
Descargar