Uso de interrupciones y puerto serial

Dependencies:   mbed

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
}



All wikipages