Las sentencias condicionales y la lectura de entradas son elementos fundamentales en la programación de sistemas embebidos y dispositivos electrónicos. Estas herramientas permiten tomar decisiones y responder a diferentes condiciones dentro del programa, lo que es esencial para controlar el comportamiento del sistema en tiempo real.
En esta sección, exploráremos los conceptos básicos de las sentencias condicionales, como el if, if-else, else if encadenado y switch case, así como la lectura de entradas en dispositivos electrónicos, que es crucial para interactuar con el entorno y responder a eventos externos.
📑 INDICE ~
Los operadores de comparación son herramientas fundamentales en las sentencias condicionales. Estos operadores permiten comparar dos valores y determinar si son iguales, diferentes, mayores, menores, o mayores/menores o iguales.
📑 Ejemplo en C
condition
x == y (x is equal to y)
x != y (x is not equal to y)
x < y (x is less than y)
x > y (x is greater than y)
x <= y (x is less than or equal to y)
x >= y (x is greater than or equal to y)
La sentencia if permite ejecutar un bloque de código si se cumple una condición especificada.
📑 Ejemplo en C
if (condition)
{
//statement(s)
}
La sentencia if-else permite ejecutar un bloque de código si se cumple una condición y otro bloque de código si no se cumple la condición.
📑 Ejemplo en C
if (condition)
{
//statement(s)
}
else
{
//statement(s)
}
La estructura else if encadenado permite evaluar múltiples condiciones en secuencia.
📑 Ejemplo en C
if (condition)
{
//statement(s)
}
else if (condition)
{
//statement(s)
}
else if (condition)
{
//statement(s)
}
else
{
//statement(s)
}
La estructura switch case permite evaluar una expresión y ejecutar diferentes bloques de código según el valor de la expresión.
📑 Ejemplo en C
switch (var)
{
case constante1:
// statements
break;
case constante2:
// statements
break;
case constante3:
// statements
break;
default:
// statements
break;
}
La lectura de entradas es fundamental en la interacción de sistemas electrónicos con su entorno. Para leer una entrada, se realiza una operación de AND bitwise entre el puerto de entrada y una máscara que indica qué bit se desea leer. Esto permite determinar el estado de un bit específico y tomar decisiones basadas en este estado.
Para leer una entrada existe la siguiente manera:
Se llama el puerto de entrada PINX = 0bXXXXXXXX
el cual contiene un numero desconocido, después se crea una máscara con una and bitwise con el número 0b00000001
para saber el estado del bit 0 sin importar los demás para crear la siguiente lógica
$$ \begin{align} 0bxxxxxxxx\\ \&\ 0b00000001 \\Res = 0b0000000x \end{align} $$
📑 Ejemplo en AVR
//-Mascara de bits
//PINX -> puerto de lectura
// & compuerta and bitwise
//0b00000001 -> bit a evaluar (bit0)
if (PINX & 0b00000001)
//0bXXXXXXXX & 0b00000001 = 0b0000000X
//0bXXXXXXX0 & 0b00000001 = 0b00000000
//0bXXXXXXX1 & 0b00000001 = 0b00000001
//-Si el bit 0 es 1 entra al if
if (PINX & 0b00000001)
//-Reducido
if (PINX & (1 << PINX0))
//-Reducido con Macro
if (PINX & _BV(PINX0))
//--Reducido con Macro AVR
if (bit_is_set(PINX,PINX0))
//--Reducido con Macro AVR
if (bit_is_clear(PINX,PINX0))
📚 Tabla de contenido
🗓️ Semana 4 - 📗 Fundamentos de Programación para Microcontroladores
Diagramas de Flujo y Pseudocódigos
Introducción Lenguaje C para microcontroladores
Introducción Lenguaje Assembler para microcontroladores
Ejecución secuencial de instrucciones en un Microcontrolador
Operadores de desplazamiento (bit shifting)
Práctica N.º02 - Gestión Secuencial de Salidas
🗓️ Semana 5 - 📗 Lectura de entradas y estructuras condicionales
Operadores lógicos (bit a bit)
Creación y Uso de Funciones en Microcontroladores
Configuración de entradas y puerto paralelo
Sentencias condicionales con operadores lógicos
Práctica N.º03 - Decodificación de Entradas Binarias
🗓️ Semana 6 - 📗 Estructuras iterativas
Control de display 7 segmentos
Actividad Fundamental N.º02 - Análisis de arquitectura de microprocesadores
🗓️ Semana 7 - 📗Motores de DC y asesorías de medio curso