Sesión 5: Gestión de Puertos

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

CURSO BASICO INTERMEDIO
Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Microprocesadores Componentes básicos..
Hardware.
¿Qué es una computadora?
Introducción al software
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Introducción a la programación
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Introducción a los MCU´s de Motorola
Windows XP sp3.
Arquitectura de Conjunto de Instrucciones (ISA)
Entrada / salida digital con ccs
Composición Interna de un Procesador
Arquitectura del Computador
Microcontroladores PIC16F84A.
Introducción a la Ingeniería en Sistemas
Es el término resultante de la contracción de los vocablos INFORmación y autoMÁTICA. Se define como el conjunto de conocimientos científicos y técnicos.
Operación de Micros e Interfaces
MICROCONTROLADORES NOCIONES BÁSICAS. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Fundamentos de Programación Resolución de Problemas con Computadoras y Herramientas de Programación.
Hanna y Dima. Definición Funciones Básicas -La unidad CENTRAL (CPU. Central Proceising Unit) -La memoria principal -Dispositivos de Entrada y Salida Tratamiento.
Motherboard ISC. Eder Chavez Acha.
LENGUAJES DE PROGRAMACIÓN
¿Qué unidades conforman el procesador?
Informática Ingeniería en Electrónica y Automática Industrial
Introducción a la Informática
La computadora es una máquina de tipo electrónico-digital, capaz de procesar información a gran velocidad y con gran precisión, previa programación correcta.
UNIVERSIDAD DEL VALLE DE MEXICO
Sesión 11: - Comparador, Captura y PWM. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Programar PIC`s en lenguaje C18 En 64 horas. El siguiente material está desarrollado como complemento didáctico para la materia de microcontroladores,
Sesión 10: Conversión Análoga a Digital
Sesión 08: Interrupciones - IRQ. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Componentes Físicos y Lógicos de un Computador
Tecnología de la Información y Comunicación 1
Es la parte lógica y está formada por los programas.
Estructura de los Sistemas Operativos
Clase 14: Memoria EEPROM.
Tema 4: El microcontrolador PIC16F876
UNIDAD CENTRAL DE PROCESO
Términos algoritmo diseñar algoritmo implementar algoritmo
Sesión 6: Repaso LCD - Keyboard. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1Universidad Santo.
HARDWAREHARDWARE FELIX BELLA EDU ROS. INDICE 1-. INTRODUCCION 2-. FUNCIONES BASICAS A) LA UNIDAD CENTRAL (CPU) B) LA MEMORIA PRINCIPAL C) DISPOSITIVOS.
1.1 Introducción A Los Sistemas Informáticos
SANTIAGO MORA BERMÚDEZ
NOCIONES BÁSICAS COMPUTO II
ELEMENTOS DE UN COMPUTADOR
CORPOCIDES Ing. Emilio Medina Baquero
Software.
INTRODUCCIÒN MICROCONTROLADORES
INDICE Memoria RAM CPU Fuente de poder Placa madre Disco Duro.
EL ORDENADOR PERSONAL Aparato electrónico que sirve para procesar información (transformarla para que sea útil. Para hacerlo codifica la información (descompuesta.
Funciones principales!
M E N U I N I C I A L PARTES PC PERIFERICOS C P U SOFTWARE 1 johnbonilla.es.tl.
Webquest Generaciones de Computadoras Grupo#2 Michelle Jirau Natalya La Russa María Irizarry María González.
Programación de microcontroladores PIC16f877a en linux
LOS COMPONENTES DEL ORDENADOR
INFORMÁTICA AUTORA: Alba Escobar Diez.. La informática es… Es una ciencia que estudia procesos, métodos… Con el fin de almacenar, procesar y transmitir.
El microprocesador y su arquitectura
CONCEPTOS BÁSICOS ING. SUSANA BELTRAN.
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Gestión de Memoria – Parte 2
INTRODUCCIÓN A LA INFORMÁTICA Realizado por: SARI FOLGADO.
 Software  Humanware  Hardware Conformado por.
CONIMEIRA XVI Bootloaders para microcontroladores PIC de Microchip Presentan: Ing. Ricardo Guadrón Tec. Juan José Guevara Escuela Especializada en Ingeniería.
Universidad de Los Andes Facultad de Humanidades y Educación Educación: Mención Lenguas Modernas Br. Diego N. Gutiérrez D. C.I Mérida, 22 de.
Unidad de Control Ubicación: Es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Realizar.
SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores.
Transcripción de la presentación:

Sesión 5: Gestión de Puertos

Agenda 1 2 3 4 5 6 Introducción PIC en el lenguaje C Operadores Repaso de los operadores del lenguaje C Directivas del Preprocesador como Elementos necesarios del lenguaje C 3 4 Memoria Distribución de la memoria RAM del PIC16F887 5 Gestión de Puertos Conceptos generales sobre la gestión de puertos 6 Gestión a través de la RAM Definición de etiquetas para la manipulación de los registros

A continuación… Introducción Introducción Operadores (Repaso) Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM

Introducción El estudiante adquiere las habilidades requeridas para trabajo en usando Sistemas Embebidos. MOTOR DC ADC CPU PWM IRQ UART IRQ P 0 1 0 0 1 1 Frecuencia? TIM Memoria I2C MCUs

Introducción Los dispositivos electrónicos Celulares. Reproductores MP3/MP4. Memorias USB. Unidades de DVD. XBOX, PS1/2/3. Periféricos de un PC. Son ejemplos de Sistemas Embebidos Involucran: Hardware, Software y/o Firmware.

Actuadores, periféricos Introducción Sistema Embebido Sistema Electrónico. Unidad de Procesamiento. Desarrolla una o varias tareas específicas. No se concibe como un ordenador/computador Usos muy diferentes. Precio y Consumo. Aplicaciones de Tiempo Real. Entradas Sensores, periféricos Procesamiento Tiempo real Salidas Actuadores, periféricos

Sistemas Embebidos Sistema para el procesamiento de información que está incrustado dentro de otros sistemas. Carros. Equipos de Telecomunicación. Electrónica de consumo y más… Características Principales Limitantes de Tiempo Real. Requerimientos de fiabilidad y eficiencia.

Evolución de la computación Importancia Los Sistemas Embebidos son considerados las aplicaciones más importantes del área de tecnología de información para los años venideros. Relación directa con el término la era Post-PC. Los computadores tradicionales no dominarán más. Procesadores y Software en sistemas muy pequeños. Sistemas invisibles  Desaparece el Computador como lo conocemos. Al estar en todas partes, se vuelve algo tan común que ni siquiera nos preguntamos si existe!!!

Evolución de la computación Los sistemas embebidos Proveer información en cualquiera lugar, en cualquier momento debido a que: Los computadores se vuelven parte del ambiente. Funcionan de manera autónoma y discreta. La idea principal, sistemas en todas partes, a todo momento, que el uso de los sistemas sea realmente transparente para el usuario!!!

Características generales Características de los Sistemas Embebidos Sistemas Embebidos Sistema de Procesamiento de Información. Está embebido en un producto más grande. Normalmente no es visible por el usuario. Interactúan con el entorno. Conexión con el Entorno Sensores: Recolectan información del entorno. Actuadores: Controlando el entorno. Entradas Sensores, periféricos Procesamiento Tiempo real Salidas Actuadores, periféricos

Características generales Características de los Sistemas Embebidos Fiabilidad: Alta probabilidad de que el sistema no tenga fallos. Mantenimiento: Alta probabilidad de que un fallo en el sistema pueda corregirse en un tiempo prudente. Disponibilidad: Alta probabilidad de que el sistema esté disponible. Depende de los anteriores. Sistema Seguro (safety): Propiedad de no producir daños en caso de un fallo. Seguridad con la info. (security): Confidencialidad con la información.

Características generales Características de los Sistemas Embebidos Uso de periféricos particulares Normalmente: sin teclado, sin mouse, sin discos duros, sin grandes pantallas. Interfaces de Entrada/Salida: Botones o pulsadores, teclados matriciales, displays de 7 segmentos y LCDs, joysticks, pedales, entre otros. Sistemas Híbridos Sistemas Análogos y Sistemas Digitales. ENTORNO Actuadores (Análogo) Sensores (Análogo)

Características generales Características de los Sistemas Embebidos Operación en ambientes hostiles. Energía y consumo de potencia. Tamaño del firmware. Eficiencia en tiempo de Ejecución. Peso y Costo.

Aplicaciones AUTOMOTRIZ TELECO MCUs CONSUMO S. MÉDICOS Frenos. Motor. Aire acondicionado. Marchas. Control Tracción. TELECO Comunic. Industrtrial. Domotica. Redes Sistemas GPS MCUs CONSUMO Lavadoras. Neveras. Microondas. Relojes. Video Juegos. Cámaras de Video. S. MÉDICOS Marcapasos. ECG. Diálisis. Fiabilidad 100%.

Introducción Programación PICs mediante lenguaje de alto nivel: Si queremos realizar la programación de los microcontroladores PIC en un lenguaje como el C, es preciso utilizar un compilador de C. 10101 11110 00011 Compilador

Introducción Entorno de desarrollo: Compilador en un entorno de desarrollo integrado (IDE) Nos va a permitir desarrollar todas y cada una de las fases que se compone un proyecto Edición Compilación Depuración de errores.

A continuación… Introducción Operadores (Repaso) Operadores (Repaso) Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM

Operadores Operadores de asignación Una expresión de asignación tradicional es de la forma: expr1 = expr2 operador expr3; expr1 operador=expr2; Operador Descripción += Asignación de suma -= Asignación de resta *= Asignación de multiplicación /= Asignación de división %= Asignación de módulo <<= Desplazamiento izquierda >>= Desplazamiento Derecha

Operadores Operadores de aritméticos Los operadores aritméticos se usan para realizar operaciones matemáticas Operador Descripción Ejemplo + Suma result = var + var - Resta result = var - var * Multiplicación result = var * var / División result = var / var % Módulo result = var % var

Operadores Operadores de lógicos Al igual que los operadores relacionales, éstos devuelven 1 (verdadero), 0 (falso) tras la evaluación de sus operandos Operador Descripción ! NO lógico && Y lógico || O lógico

Operadores Operadores de incremento y decremento Pueden formar parte del grupo de operadores de asignación En ambos casos existen el pre y el pos: Preincremento – Posincremento Predecremento – Posdecremento Operador Descripción ++ Incremento -- Decremento

Operadores Operadores Relaciones Su misión es comparar dos operandos y dar un resultado entero: 1 (verdadero); 0 (falso). Operador Descripción <  Menor que >  Mayor que <= Menor igual que >= Mayor igual que == Igual a != Diferente de

Operadores Operadores de dirección e indirección Los operadores & y * se utilizan para trabajar con punteros. Un puntero es una variable que contiene la dirección de una variable o de una función Operador Descripción & Dirección * Indirección

A continuación… Introducción Operadores (Repaso) Directivas del preprocesador Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM

Directivas del Preprocesador comienzan con el símbolo # y continúan con un comando específico. La sintaxis depende del comando Muchas de las directivas utilizadas por CCS son extensiones del C estándar Estandar Cualificadores Identificadores RTOS Especificación de dispositivos Librerías predefinidas Control de memoria Control de compilador.

Directivas del Preprocesador Estándar C #define #if #else #ifndef #ifdef #endif #include #list #error Cualificadores #inline #int_global #separate #int_default #int_xxx   Identificadores __DATE__ __LINE__ __PCH__ __FILE__ __PCB__ __TIME__ __DEVICE__ __PCM__ __FILENAME__ RTOS #task #use Especificación de dispositivos #device #ID #fuses #serialize Librerias Predefinidas #use delay (clock) #use fixed_io #use fast_io #use I2C #use RS232 #use SPI #use standard_io Control de Memoria #asm #endasm #byte #bit #type #build #fill_rom #zero_ram #locate #reserve Control de Compilador #case #opt #priority #org #ignore_warnings

Directivas del Preprocesador Estándar Son las directivas propias del lenguaje C, aceptadas por todos los compiladores de este lenguaje. Estándar C #define #if #else #ifndef #ifdef #endif #include #list #error

Directivas del Preprocesador Estándar #define identificador valor: Utilizada para crear etiquetas que facilitan la programación. Esta directiva permitirá remplazar el valor por el identificador seleccionado #define BITS 8 #define K 16 #define mensaje “Fin de Programa”

Directivas del Preprocesador Estándar #include “archivo.h” o #include <archivo.h>: utilizada para que el compilador incluya en el fichero fuente el texto que contiene el archivo especificado en archivo.h #inlude “modulo1.h” #include <16F887.h>

Directivas del Preprocesador Especificación de Dispositivos Con estas directivas podremos especificar nuestro microcontrolador. También, seleccionaremos la configuración necesaria para nuestra aplicación. Especificación de dispositivos #device #ID #fuses #serialize  

Directivas del Preprocesador Especificación de Dispositivos #device chip: Le indica al compilador que clase de arquitectura hardware que se va a utilizar. Esto determina la memoria RAM y ROM así como el juego de instrucciones. #device PIC16F887 #device PIC16C74

Directivas del Preprocesador Especificación de Dispositivos #fuses opción: se configuran algunas características especiales del dispositivo. Se definen qué fusibles van a activarse en el dispositivo cuando se programe. Esta directiva no afecta a la compilación; sin embargo, esta información se pone en el archivo de salida. Algunas de las opciones más usadas son: Configuración del reloj Watchdog Protección Tiempo de estabilización Master clear

Especificación de Dispositivos Configuración del reloj Todo microcontrolador requiere de un circuito que le indique a que velocidad debe trabajar. Este circuito es conocido por todos como un oscilador de frecuencia. Este oscilador es como el motor del microcontrolador. MCU Frecuencia?

Especificación de Dispositivos Configuración del reloj El tipo de oscilador dependerá de: precisión Velocidad Potencia Costo

Especificación de Dispositivos Configuración del reloj Configuración 1 Configuración 2 Frecuencia de Oscilación C1 C2 455 Khz 47 - 100 pF 2 Mhz 15 - 33 pF. 4 Mhz Valor de la resistencia debe estar entre los 5K y 100K. Valor del capacitor un capacitor de 20pF. f = R x C

Especificación de Dispositivos Configuración del reloj XT: Oscilador tipo XTal para una frecuencia igual a 4 Mhz. LP: Oscilador tipo Low Power para frecuencias entre 32 y 200 Khz. HS: Oscilador tipo High Speed para frecuencias comprendidas entre 4 y 20 MHz. RC: Oscilador tipo Resistor/Capacitor para frecuencias no mayores de 5.5 Mhz. INTRC_IO: utilización del oscilador interno. Diferencia? Diferencia? Ventajas/Desventajas? cuándo posible utilizarlo?

Especificación de Dispositivos Watchdog Temporizador que activa un sistema de reinicio (reset) u otra acción correctiva en el programa principal. Activación debido a alguna condición de falla. Objetivo: estado inicial. WDT: Hace uso del watchdog NOWDT: Desactiva el watchdog

Especificación de Dispositivos Protección contra lectura: Política que impide la lectura del programa que se encuentre dentro del microcontrolador mediante el programador. PROTECT: activa la protección contra lectura NOPROTECT: Sin protección de lectura

Especificación de Dispositivos Estabilización En ocasiones es necesario tener un tiempo de espera para estabilización de alimentación del microcontrolador. PUT: habilita el Power Up Timer. NOPUT: deshabilita el tiempo de estabilización inicial. tiempo de espera

Especificación de Dispositivos Reset Externo Usa un pin de múltiples aplicaciones, es la entrada conocido como Master Clear. Se activa con un nivel bajo de voltaje (gnd), y cuando no se hace uso de éstese debe conectar directamente a un nivel alto (vdd). MCLR: Activar reset externo. NOMCLR: Desactivar el master clear

Directivas del Preprocesador Librerías Predefinidas Estas directivas incluyen algunas pautas para la programación del dispositivo. Nos indican la forma de acceder a los puertos Librerías Predefinidas #use delay (clock) #use fixed_io #use fast_io #use I2C #use RS232 #use SPI #use standard_io  

Directivas del Preprocesador Librerías Predefinidas #use delay (clock = frec): Esta directiva indica al compilador la frecuencia del procesador, en ciclos por segundo. Habilita delay_ms(), delay_us(), restart_WDT(). #use delay (clock=4000000) #use delay (clock=20000000)

Directivas del Preprocesador Librerías Predefinidas #use fast_io(puerto): Genera las instrucciones de entrada y salida. Este método rápido de hacer I/O ocasiona que el compilador realice I/O sin programar el registro de dirección. #use fast_io(A) #use fixed_io(puerto_outputs=pin_x#, pin_x#...): Genera las instrucciones de entrada y salida. El método fijo I/O causará que el compilador genere código para hacer que un pin sea de entrada o salida cada vez que se utiliza. #use fixed_io(a_outputs=PIN_A2, PIN_A3)

Directivas del Preprocesador Librerías Predefinidas #use standard_io (puerto): Genera las instrucciones de entrada y salida. El método estándar I/O causará que el compilador genere código para hacer que un puerto sea de entrada o salida cada vez que se utiliza. #use standard_io(A)

Directivas del Preprocesador Control de Memoria Con estas directivas podemos configurar el uso de la memoria del microcontrolador. Además, permite el uso de identificadores especiales para los puertos y posibilita el uso de código ensamblador. Control de Memoria #asm #endasm #byte #bit #type #build #fill_rom #zero_ram #locate #reserve  

Directivas del Preprocesador Control de Memoria #byte Identificador = X: Esta directiva creará un identificador que referenciará un objeto en la posición de memoria x. #byte TRISA = 0x85 #byte PORTA = 0x05 #byte PORTB = 0x06

Directivas del Preprocesador Control de Memoria #bit identificador = x.y: Esta directiva creará un identificador que puede utilizarse como cualquier entero corto (un bit). El identificador referenciará un objeto en la posición de memoria x más el bit de desplazamiento y. #bit RA2 = 0x05.2 #bit RA2 = PORTA.2

A continuación… Introducción Operadores (Repaso) Directivas del preprocesador Distribución Memoria RAM Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM

Memoria RAM Organización de la memoria de datos La memoria de datos se divide en cuatro bancos que contienen: Registros de Propósito General (GPR) Registros de Funciones Especiales (SFR). Los registros de funciones especiales se encuentran en los primeros 32 lugares de cada banco. Los registros de propósito general se encuentran en los últimos 96 lugares de cada Banco.

Memoria RAM Organización de la memoria de datos RAM Banco 0 Banco 1 1 2 3 31 8-bits 8-bits 8-bits 8-bits SFR 32 33 34 35 127 36 37 8-bits 8-bits 8-bits 8-bits GPR

Memoria RAM Organización de la memoria de datos Registros que almacenan el estado de los puertos Registros que almacenan la dirección de los puertos RAM Banco 0 Banco 1 Banco 2 Banco 3 0x001 0x002 0x004 0x005 0x007 0x008 0x00A 0x00B 0x000 0x003 0x006 0x009 8-bits 0x080 8-bits 0x081 0x082 0x0FF 0x084 0x085 0x087 0x088 0x08A 0x08B 0x083 0x086 0x089 Registros Para la Gestión de Puertos PORTA PORTB PORTC PORTD PORTE TRISA TRISB TRISC TRISD TRISE 0x07F

A continuación… Introducción Operadores (Repaso) Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión de Puertos Gestión a través de la RAM

Gestión de Puertos Puertos Los microcontroladores PIC tienen terminales de entrada/salida divididos en puertos, que se encuentran nombrados alfabéticamente A, B, C, etc. Cada puerto puede tener hasta 8 registros: Se comportan como una entrada/salida digital Multifuncionales: convertidor AD USART I2C ...

Gestión de Puertos

Gestión de Puertos Registros: Considerar los puertos como entradas/salidas digitales. Los puertos se caracterizan por ser independientes Se programa cada terminal del puerto para que se comporte como entrada o una salida digital. Habilitación: - entrada/salida - Registros TRISx Datos: - asignar/leer - Registros PORTx TRISx PORTx TRISx0 TRISx1 TRISx2 TRISx3 TRISx4 TRISx5 TRISx6 TRISx7 Rx0 Rx1 Rx2 Rx3 Rx4 Rx5 Rx6 Rx7

Gestión de Puertos Configuración: Registros TRISx: 0 puerto de salida 1 puerto de entrada. Habilitación: - entrada/salida - Registros TRISA Datos: - asignar/leer - Registros PORTA TRISA PORTA 1 Salida Entrada

Gestión de Puertos Caminos para su manipulación: En lenguaje C se pueden gestionar los puertos de dos formas: Se declaran los registros TRlSX y PORTX definiendo su posición en la memoria RAM como variables de C. Utilizando las directivas específicas del compilador (#use fast_io, #use fixeo_io, #use standard_io).

A continuación… Introducción Operadores (Repaso) Directivas del preprocesador Distribución Memoria RAM Gestión de Puertos Gestión a través de la RAM Gestión a través de la RAM

Puertos a través de la RAM Registros para la Gestión de Puertos: Se definen los registros de gestión de puertos como variables Byte: PORTx TRISx Se debe asignar la posición de los registros correspondientes: Registros: TRISA: 85h, TRISB: 86h, TRISC: 87h, TRISO: 88h, TRISE: 89h Registros: PORTA: 05h, PORTB: 06h, PORTC: 07h, PORTD: 08h, PORTE: 09h

Puertos a través de la RAM Declaración de un Puerto: La directiva utilizada de es #BYTE: #BYTE variable=constante; Ejemplos: #BYTE TRISA = 0x85 //Variable TRISA en 85h #BYTE PORTA = 0x05 //Variable PORTA en 05h. #BYTE TRISB = 0x86 //Variable TRISB en 86h. #BYTE PORTB = 0x06 //Variable PORTB en 06h. #BYTE TRISC = 0x87 //Variable TRISC en 87h. #BYTE PORTC = 0x07 //Variable PORTC en 07h.

Puertos a través de la RAM Configurando Puertos: Una vez definidas estas variables se pueden configurar y controlar los puertos a través de los comandos de asignación. Ejemplos: TRISA = 0xFF; TRISB = 0x00; TRISC = 0x0F; // 8 registros de entrada // 8 registros de salida // 4 registros mayor peso de salida, 4 registros de menor peso de entrada

Puertos a través de la RAM Configurando Puertos: Escritura en los puertos: Lectura de puertos: PORTC = 0x0A; // salida del datos 00001010 por el puerto C Valor = PORTA; // Asigna el dato del puerto A a la variable Valor.

Puertos a través de la RAM Declaración de un Pin (registro): Se puede declarar un bit de un registro con una variable La directiva #BIT, lo que permite trabajar directamente con el pin: #BIT nombre = posición.bit Ejemplos: Declaración: #BIT RA4 = 0x05.4 // PORTA = 0X05 Asignación: RA4 = 0; Declaración: #BIT RB2 = 0x06.2 // PORTB = 0X06 Lectura: Valor = RB2;

Puertos a través de la RAM Funciones Funciones para trabajar bit a bit con los registros o variables definidas previamente. Estas funciones son las siguientes: bit_clear (var, bit); // Pone a 0 el bit específico (0 a 7) de la variable. bit_set (var, bit); // Pone a 1 el bit específico (0 a 7) de la variable. bit_test (var, bit); // Comprueba el bit específico (0 a 7) de la variable. swap (var); // Intercambia los 4 bits de mayor peso por los 4 de menor peso

Fin sesión