instituto tecnológico de querétaro - itq.edu.mx · pdf fileguia del compilador c...

Download INSTITUTO TECNOLÓGICO DE QUERÉTARO - itq.edu.mx · PDF fileGUIA DEL COMPILADOR C DE CCS PARA MICROCONTROLADORES PIC DE MICROCHIP Elaboró: ... Struct and union Formato: struct [id]

If you can't read please download the document

Upload: trannhi

Post on 06-Feb-2018

230 views

Category:

Documents


5 download

TRANSCRIPT

  • Guia del Compilador C para Microchip Instituto Tecnolgico de Quertaro

    Armando Mora Campos 1

    INSTITUTO TECNOLGICO DE QUERTARO

    GUIA DEL COMPILADOR C DE CCS

    PARA MICROCONTROLADORES

    PIC DE MICROCHIP

    Elabor: Prof. Armando Mora Campos.

    Fecha: Febrero 2017.

    Versin: 3.2

  • Guia del Compilador C para Microchip Instituto Tecnolgico de Quertaro

    Armando Mora Campos 2

    INDICE

    1. FORMATO GENERAL DE UN PROGRAMA ............................................................... 4

    2. TIPOS DE DATOS (type-specifier) .................................................................................. 7

    3. DEFINICION DE FUNCIONES ....................................................................................... 9

    4. SENTENCIAS DE CONTROL Y ESTATUTOS (stmt) .................................................. 10

    5. EXPRESIONES ................................................................................................................. 11

    6. FUNCIONES Y DIRECTIVAS PARA EL MANEJO DE PERIFERICOS Y

    RECURSOS ...................................................................................................................... 13

    6.1 Entradas/Salidas discretas ............................................................................................ 13

    6.2 Temporizadores/contadores ......................................................................................... 14

    6.3 Convertidores A/D ....................................................................................................... 16

    6.4 Programacin de retardos ........................................................................................... 17

    6.5 Comunicacin serie asincrona RS-232 ........................................................................ 17

    6.6 Comunicacin serie sincrona i2c (SSP) ....................................................................... 19

    6.7 Comunicacin serie sincrona SPI (E/S en dos hilos)................................................... 21

    6.8 Puerto paralelo esclavo (PSP) ..................................................................................... 21

    6.9 Comparadores .............................................................................................................. 22

    6.10 EEPROM de datos (interna) ...................................................................................... 22

    6.11 Manipulacin de bits ................................................................................................. 22

    6.12 Funciones para el display LCD .................................................................................. 24

    6.13 Control del procesador .............................................................................................. 25

    6.14 Standard C ................................................................................................................ 26

    7. MANEJO DE INTERRUPCIONES .................................................................................. 28

    8. DIRECTIVAS MISCELANEAS ....................................................................................... 30

    8.1 Insertando cdigo ensamblador en un programa en C ......................................... 30

    8.2 Definicin de constantes tipo bit y byte ...................................................................... 30

    8.3 Directivas auxiliares .................................................................................................... 30

    9. SISTEMA OPERATIVO EN TIEMPO REAL ................................................................. 32

    9.1 Directivas del RTOS ................................................................................................... 32

    9.2 Funciones del RTOS .................................................................................................... 35

    9.3 RTOS e interrupciones ............................................................................................... 46

  • Guia del Compilador C para Microchip Instituto Tecnolgico de Quertaro

    Armando Mora Campos 3

    10. NOTAS Y RECOMENDACIONES PARA EL COMPILADOR PCW ........................... 50

    10.1 Manejo de puertos paralelos ..................................................................................... 50

    10.2 Uso de variables que definen un bit (short y short int) .............................................. 50

    10.3 Lectura y escritura de registros internos ................................................................... 51

    10.4 Definicin de funciones: inline o separate? ............................................................. 52

    10.5 Optimizacin en el manejo de la memoria RAM ...................................................... 53

    10.6 Restricciones en llamadas a funciones en interrupciones .......................................... 54

    10.7 Localizacin de tablas en memoria ROM ................................................................. 55

    11. DIAGRAMA PARA LOS EJERCICIOS DEL PIC16F887. ............................................. 56

    12. ARCHIVO H DEL PIC16F887.. ....................................................................................... 57

    13. EJEMPLOS SUPERLAZO ............................................................................................... 65

    14. EJEMPLOS RTOS COOPERATIVO ............................................................................. 109

  • Guia del Compilador C para Microchip Instituto Tecnolgico de Quertaro

    Armando Mora Campos 4

    1. FORMATO GENERAL DE UN PROGRAMA

    (SUPERLAZO).

    a) Indicando comentarios.

    /*Comentarios*/ o //Comentarios:

    //Ejemplo de comentarios bsicos: Nombre del programa, autor, fecha, procesador, resumen de

    //operacin y uso.

    b) Include para especificar el dispositivo y las constantes de terminales y registros:

    #include //Nota: los archivos dispositivo.h ya incluyen la directiva #device,

    #include // la cual define el MCU PIC a utilizar.

    c) Include para definir los fusibles de programacin (ejemplo): #fuses RC, NOWDT, PROTECT, PUT //Configuracin por default.

    d) Includes para el manejo de algunas funciones del compilador:

    #include stdio.h //Include para algunas funciones del pto. serie RS-232.

    #include ctype.h //Include para funciones isxxx().

    #include stdlib.h //Include para algunas funciones char de c estandar.

    #include math.h //Include para funciones matemticas de punto flotante.

    e) Directivas use para el manejo de funciones y perifricos que se utilizaran (ejemplos): #use delay(clock=10000000, restart_wdt) //Directiva para el manejo de retardos.

    #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) //Directiva para el manejo del pto. Serie.

    #use fast_io(A) //Una de las directivas para el manejo y operacion de puertos.

    f) Directivas auxiliares (ejemplos):

    #id word //Directiva para especificar el identificador del chip.

    #zero_ram //Directiva para inicializar a cero todos los registros internos.

    #rom dir = {data0, data1,..} //Directiva para insertar datos en el archivo.hex.

    g) Declarando constantes (datos y localidades de memoria):

    #define BITS 8 //Constantes.

    #define INTS_PER_SECOND 76

    #define LAST_VOLUME 10

    #byte status = 3 //Localidad de memoria.

    #bit time_out = 3.4 //Bit de un registro.

    h) Declarando variables globales (ejemplo):

    int a,b,c,d;

    typedef int byte;

    bit e,f;

    enum ADC_SOURCE {an0, an1, an2, an3, bandgap, srefh, srefl, itemp, refa,refb, an4, an5,

    an6, an7};

  • Guia del Compilador C para Microchip Instituto Tecnolgico de Quertaro

    Armando Mora Campos 5

    i) Funciones (ejemplos).

    En forma de archivos include:

    #include

    #include

    Con la funcin completa en el programa (ejemplos):

    void display_data(long int data) {

    char volt_string[6];

    convert_to_volts(data, volt_string);

    printf(volt_string);

    printf(" (%4lX)",data);

    }

    float READ_FLOAT_CAL(int n) {

    int i;

    float data;

    for (i = 0; i < 4; i++)

    *(&data + i) = READ_CALIBRATION(i + n);

    return(data);

    }

    j) Rutinas de servicio a interrupcion (ejemplos).

    #int_rtcc // This function is called every time

    clock_isr() { // the RTCC (timer0) overflows (255->0).

    if(--int_count==0) { // For this program this is apx 76 times per second.

    ++seconds;

    int_count=INTS_PER_SECOND;

    }

    }

    #int_ccp2

    void isr() {

    rise = CCP_1;

    fall = CCP_2;

    pulse_width = fall - rise; // CCP_1 is the time the pulse went high

    } // CCP_2 is the time the pulse went low

    k) Funcin principal (ejemplos).

    void main() {

    byte i,j,address,value;

    do {

    printf("\r\n\nEEPROM:\r\n"); // Display contents of entire EEPROM in hex.