Uso de interrupciones y puerto serial
You are viewing an older revision! See the latest version
Homepage
Deber Sistemas Microprocesados¶
PROBLEMA
En este ejercicio básico se repasa el tema de puertos de entrada y salida de la tarjeta ARM; agregando funcionalidades tales como La comunicación serial y las interrupciones.
*Comunicación serial:* Muchos equipos aún trabajan con esta forma de comunicación, en el ejercicio se usa la plataforma Hercules utilities para oberservar la comunicacióno efectiva entre la tarjeta y el puerto serial.
- Interrupciones: * La secuencia de un programa puede verse detenido o realizar otras tareas siempre y cuando una señal externa previamente indicada tenga validez. Es decir, detener el programa principal para ejecutar órdenes específicas para luego continuar con la tareas del programa principal.
include the mbed library with this snippet
#include "mbed.h" InterruptIn sensor(PD_12); // Entrada digital que activa la interrupción Serial pc(PA_2,PA_3,115200); // Variable (pc) para comunicación serial PA_2 y PA_3 a una velocidad de 115200 DigitalOut alarma_interrup(PD_13); // Pin digital de salida, variable alarma_interrup direccionado al pin PD_13 DigitalOut led(PD_14); // Pin digital de salida, variable LED al pin PD_14 simulando un ejecución de programa int Contador = 0; // variable entera llamada Contador void activa(void); // Llamado de función "activa" int main() { sensor.rise(&activa); // Relaciona la señal de interrupción y la función creada while(1) { // Desarrollo del programa base. led = 1; wait(0.2); led = 0; wait(0.2); } } void activa() // Ejecución de la función "activa" /* Activa un señal de alarma, y envía un conteo por medio del puerto serial; esto puede ser mostrado por el programa Hercules Utilities. */ { alarma_interrup = 1; wait(0.2); alarma_interrup = 0; Contador = Contador++; // Contador aumentando el valor en 1 pc.printf("El programa se ha interrumpido %d veces\n\r",Contador); // Cadena de caracteres enviadas por el puerto serial }