PROGRAMACION DE MICROCONTROLADORES: DIRECTIVAS Y FUNCIONES DE CCS

in #spanish6 years ago

fuente

Directivas

Las directivas son comandos específicos del propio CCS que permiten entre otras cosas definir y configurar características propias del PIC que se emplee. Es necesario aclarar que algunos comandos no permiten otros elementos sintácticos en la misma expresión, es decir, se debe copiar el comando tal cual como se especifica precedido por el símbolo #. Muchas directivas utilizadas por CCS son extensiones del C estándar, así que para aquellos que ya conocen el lenguaje C les serán familiares.

A continuación se listan las directivas de preprocesado utilizadas por CCS:

fuente

A medida que avancemos con el curso se irán viendo varias directivas en su ámbito de aplicación particular, pero por el momento es necesario que comprendan las siguientes debido a su uso constante en todos los programas:

#include“fichero.h” y #include<fichero.h>

Esta directiva permite incluir ficheros en el programa. La diferencia en usar “ ” o < > radica en que con #include<fichero.h> el compilador realiza la búsqueda únicamente en la carpeta de instalación del programa, mientras que con #include“fichero.h” la búsqueda del fichero es realizada previamente en la carpeta donde se aloja el proyecto, y en caso de no encontrarlo, lo busca en la carpeta de instalación del programa. Emplear “ ” resulta ser una ventaja a la hora de incluir ficheros propios del usuario debido a que el proyecto se vuelve portable.

fuente


#fuses options

Usando esta directiva se pueden habilitar o no, características propias del PIC mediante el correcto seteo de los fusibles, los cuales indican la configuración elegida para el proceso de grabación del microcontrolador. Es necesario resaltar que algunos fusibles pueden cambian entre microcontroladores porque no todos tienen las mismas opciones de configuración.

fuente

A continuación se listan algunas opciones de configuración comunes junto a su significado:

  • #fuses INTRC_IO: Oscilador Interno y tanto RA6 como RA7 son I/O (exclusiva de los PIC16F1XXX y PIC18F).
  • #fuses NOCLKOUT: No sale el clock interno hacia afuera.
  • #fuses NOWDT: Watch Dog Timer apagado.
  • #fuses PUT: Power Up Timer activado.
  • #fuses NOBROWNOUT: Reset ante variaciones de VCC desactivado.
  • #fuses NOIESO: Switch del oscilador en el encendido apagado.
  • #fuses NOFCMEN: Detector de falla del oscilador principal apagado.
  • #fuses NOSTVREN: Reset por desborde del stack desactivado.
  • #fuses NOLVP: Programación en baja tensión desactivada.
  • #fuses NOPROTECT: Protección contra lectura de la FLASH desactivada.
  • #fuses NOCPD: Protección de la EEPROM desactivada.
  • #fuses NOVCAP: Regulador de voltaje para el MTOUCH apagado.

#use delay(clock=speed)

Permite definir la frecuencia del oscilador del PIC, el compilador lo utiliza para realizar cálculos de tiempo. Se puede utilizar M (para MHZ) y K (para KHZ) para definir la frecuencia.

fuente


#asm y #endasm

Permiten agregar segmetos de código ensamblador dentro del programa en C. Se emplea #ASM para el inicio y #ENDASM para el final del bloque ensamblador.

fuente


Aquí se ve como se emplean juntas algunas de la directivas más empleadas:

fuente



Funciones de CCS

CCS suministra una serie de funciones predefinidas para acceder y utilizar el PIC y sus periféricos. Estas funciones facilitan la configuración del PIC sin entrar en el nivel de los registros especiales.

Las funciones se clasifican por bloques, a continuación se las presento:

fuente



Muchas gracias por su atención.
Nos estamos leyendo!!✔
BYE

Imgur
@entrecodigo


Sort:  

Hola @entrecodigo. Gusto en leerte de nuevo. Este tema es realmente pertinente para los especialistas. Por otra parte, creo que la última vez te hice algunas sugerencias sobre los posts 😃 Intenté acceder a las fuentes de algunas imágenes, pero están rotos los enlaces. Puedo hacerte llegar más sugerencias.
Te invito a unirte al servidor en Discord de #STEM-Espanol, donde puedes participar y recibir más feedback.

Mentor de #STEM-Espanol

Congratulations @entrecodigo! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!