CCS.ppt

Embed Size (px)

Citation preview

  • COMPILADOR C DE CCSPRINCIPALES FUNCIONES Y DIRECTIVAS

  • ARCHIVO HEADER ENCABEZAMIENTOEstn siempre integradas en todos los compiladores ANSI C,( Instituto Nacional Estadounidense de Estndares).El archivo header del microcontrolador contiene las equivalencias para el compilador entre los nombres de los puertos, registros, bits y seales con su direccin fsica en el microcontrolador.En el caso del compilador CCS, debe incluirse la directiva #include , el compilador busca el archivo en la carpeta "devices" en donde se instalaron originalmente los drivers para cada microcontrolador.

  • Para el valor 40: 40/8: Cociente = 5 que es la direccin del puerto A(0x05), Resto = 0 que es el PIN 0 que es el que queremos cambiar.

    Esa es la relacion que hay entre el nmero que se pone y el PIN del puerto correspondiente.// Constants used to identify pins in the above are:

    #define PIN_A0 40#define PIN_A1 41#define PIN_A2 42#define PIN_A3 43#define PIN_A4 44#define PIN_A5 45

  • Las funciones son los elementos principales de un programa en C.Son bloques en los cuales se realiza una tarea especfica.Un programa en C est formado por la funcin main que es el bloque principal, por funciones propias del programador y por funciones de libreras propias del compilador.Una caracterstica importante de las funciones, es que pueden recibir parmetros y que pueden devolver un valor. La misma funcin nos puede servir para varios casos, con tan solo variar el valor de los parmetros. El compilador de CCS incluye muchas funciones "built-in" (listas para usarse) en sus libreras para el control directo de muchos de los recursos del PIC, para utilizarlas slo necesitamos saber los parmetros que reciben y los valores que devuelven.FUNCIONES

  • VARIABLES Qu son las variables? pues sencillamente el poder identificar con un nombre una o varias posiciones de memoria de la RAM de nuestro PIC y de esta manera el poder almacenar all los datos que va a utilizar nuestro programa

  • MEMORIA RAM DEL PIC La memoria RAM en cuyos registros se irn almacenando los valores de las variables que nosotros queramos y cuando nosotros queramos (por programa), al apagar el pic esta memoria se borra.

  • PUERTOS DEL PIC Por Ejemplo:

    Si TRISB es igual a 00000001 todos sus pines sern salidas salvo RB0 que esta como entrada

    Cuando el PIC arranca se encuentra en el BANCO 0, como TRISA y TRISB estn en el BANCO 1 no queda otra, deberemos cambiar de banco. Esto se logra a travs del Registro STATUS

  • DELAY Esta instruccin DETIENE la ejecucin del programa, durante un determinado tiempo, el parmetro tiempo es un nmero que para el PIC es en milisegundos.

  • WHILE

  • IF

  • FOR

  • Expresin 1; inicializa la variable variables de control del bucle. Expresin 2; representa la condicin de continuacin en el bucle. Expresin 3; modifica el valor de las variables de control en cada iteracin del bucle.

    Los puntos y comas que separan cada expresin son obligatorios.for(i=1;i

  • FUSES DEL PIC Sirven para configurar ciertos aspectos del microcontrolador. Cada FUSE activa o desactiva una opcin de funcionamiento.

  • #define MAXIMO 30

    Esta orden se ejecuta de la siguiente forma: en la fase de compilacin al ejecutar #define el compilador sustituye cada operacin de la primera cadena de caracteres por la segunda, MAXIMO por el valor 30 adems, no se permite asignar ningn valor a esa constante.Es decir si pusiramos:

    #define MAXIMO = 30

    Al compilar tendramos un error.

    Nota: La declaracin #define no acaba en ";"

  • #DEVICESyntax: #device chip optionschip is the name of a specific processor (like: PIC16C74),Options are qualifiers to the standard operation of the device.Example:#device PIC16F877

  • #INCLUDESyntax:#include #include "filename

    Ejemplos:#include #include lcd.h

  • #DEFINESyntax: #define id textUsed to provide a simple string replacement of the ID with the given text from this point of the program and on.Examples:#define verdadero 1#define falso 0

  • #USE ****_I/OAfectan a como utilizamos los TRISXSyntax: #use fast_io (port)#use fixed_io (port_outputs=pin, pin?)#USE STANDARD_IO (port)Ejemplo#use fast_io (A)

  • #USE DELAYSyntax: #use delay (clock=speed(Hz))Tells the compiler the speed of the processor and enables the use of the built-in functions: delay_ms() and delay_us().Ejemplo:#use delay (clock=20000000)

  • #BYTESyntax: #byte id = xElements: id is a valid C identifier, x is a C variable or a constantColoca la variable id en la posicion de memoria x.Ejemplo: #byte portb=5

  • #INT_xxxIndica que la funcion a continuacion es la rutina de atencion de una determinada interrupcin

    #INT_EXT External interrupt#INT_RTCC Timer 0 (RTCC) overflow#INT_TIMER1 Timer 1 overflow

  • FUNCIONES ESPECIFICAS DEL COMPILADOR RS232 I/OI2C I/ODiscrete I/OSPI two wire I/OParallel Slave I/ODelaysProcessor ControlsBit/ByteCapt/Comp/PWMTimersA/D ConversionEEPROMC MathEtc.

  • DELAYSdelay_ms(tiempo)

    delay_us(tiempo)

    delay_cycles(ciclos) (0-255)1 ciclo= 4 ciclos de reloj

  • INPUT( )Syntax: value = input (pin)Returns:0 (or FALSE) if the pin is low,1 (or TRUE) if the pin is highEjemplo:Encendido=input(PIN_A4)

  • INPUT_x()Syntax: value = input_a()value = input_b()value = input_c()...Returns: An 8 bit int representing the port input data.

  • OUTPUT_X()Syntax: output_a (value)output_b (value)...Parameters: value is an 8 bit intFunction: Output an entire byte to a port.

  • OUTPUT_BIT( )Syntax: output_bit (pin, value)Function: Outputs the specified value (0 or 1) to the specified I/O pin.EjemplosOutput_bit (PIN_D1,0)Output_bit(PIN_A3,1)

  • OUTPUT_xxxx()OUTPUT_HIGH( )Syntax: output_high (pin)Function: Sets a given pin to the high state.

    OUTPUT_LOW( )Syntax: output_low (pin)Function: Sets a given pin to the ground state.

  • SET_TRIS_X()Configura los registros de direccionamiento de los puertos (TRIS)0 significa salida1 significa entradaEjemplo:Set_tris_a(0b00001011)

  • ENABLE/DISABLE INTERRUPTSPermiten o inhiben las interrupciones.

    Ejemplos:enable_interrupts(GLOBAL);disable_interrupts(INT_TIMER0);enable_interrupts(INT_TIMER1);

  • OTRAS FUNCIONESsetup_adc_ports()setup_adc()set_adc_channel()read_adc()

    setup_timer_X()set_timer_X()get_timer_X()

    swap()

    setup_ccpX()set_pwmX_duty()