timers

Dependencies:   mbed

Committer:
Alonso
Date:
Fri May 29 13:21:25 2015 +0000
Revision:
0:fb3a37cd5aac
lab8 para fime

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Alonso 0:fb3a37cd5aac 1 #include "mbed.h"
Alonso 0:fb3a37cd5aac 2 /* En esta practica se muestra la configuracion para el uso de ISR(interrupt serrvice rutine)
Alonso 0:fb3a37cd5aac 3 del microcontrolador que usa la FRDM, la practica trata de cambiar el estado del led rgb
Alonso 0:fb3a37cd5aac 4 en sus 3 colores diferentes, rojo, verde y azul, en peridos de 1 segundo. Para la demostracion
Alonso 0:fb3a37cd5aac 5 se programa una maquina de estados*/
Alonso 0:fb3a37cd5aac 6
Alonso 0:fb3a37cd5aac 7 Ticker rgb; // se le asigna un identificador a la ISR que se va a utilizar llamado rgb.
Alonso 0:fb3a37cd5aac 8
Alonso 0:fb3a37cd5aac 9 DigitalOut rgb_rojo(LED_RED,1); // se configura el led rojo como salida, estado incial apagado
Alonso 0:fb3a37cd5aac 10 DigitalOut rgb_verde(LED_GREEN,1);// se configura el led verde como salida, estado incial apagado
Alonso 0:fb3a37cd5aac 11 DigitalOut rgb_azul(LED_BLUE,1);// se configura el led azul como salida, estado incial apagado
Alonso 0:fb3a37cd5aac 12 int estado_led=1; // variable que se usa en la maquina de estados para el cambio de color del rgb
Alonso 0:fb3a37cd5aac 13
Alonso 0:fb3a37cd5aac 14 void blink_rgb(void) // funcion que se llama cada 1 segundo por la ISR
Alonso 0:fb3a37cd5aac 15 {
Alonso 0:fb3a37cd5aac 16 switch(estado_led)
Alonso 0:fb3a37cd5aac 17 {
Alonso 0:fb3a37cd5aac 18 case 1:
Alonso 0:fb3a37cd5aac 19 rgb_rojo = 0;
Alonso 0:fb3a37cd5aac 20 rgb_verde = 1;
Alonso 0:fb3a37cd5aac 21 rgb_azul = 1;
Alonso 0:fb3a37cd5aac 22 estado_led = 2; // se cambia el valor de variable a 2
Alonso 0:fb3a37cd5aac 23 break;
Alonso 0:fb3a37cd5aac 24 case 2:
Alonso 0:fb3a37cd5aac 25 rgb_rojo = 1;
Alonso 0:fb3a37cd5aac 26 rgb_verde = 0;
Alonso 0:fb3a37cd5aac 27 rgb_azul = 1;
Alonso 0:fb3a37cd5aac 28 estado_led = 3;// se cambia el valor de variable a 3
Alonso 0:fb3a37cd5aac 29 break;
Alonso 0:fb3a37cd5aac 30 case 3:
Alonso 0:fb3a37cd5aac 31 rgb_rojo = 1;
Alonso 0:fb3a37cd5aac 32 rgb_verde = 1;
Alonso 0:fb3a37cd5aac 33 rgb_azul = 0;
Alonso 0:fb3a37cd5aac 34 estado_led = 1;// se resetea el valor de la variable a 1.
Alonso 0:fb3a37cd5aac 35 break;
Alonso 0:fb3a37cd5aac 36 default: // led rgb apagado
Alonso 0:fb3a37cd5aac 37 rgb_rojo = 1;
Alonso 0:fb3a37cd5aac 38 rgb_verde = 1;
Alonso 0:fb3a37cd5aac 39 rgb_azul = 1;
Alonso 0:fb3a37cd5aac 40 break;
Alonso 0:fb3a37cd5aac 41 }
Alonso 0:fb3a37cd5aac 42 }
Alonso 0:fb3a37cd5aac 43
Alonso 0:fb3a37cd5aac 44 int main()
Alonso 0:fb3a37cd5aac 45 {
Alonso 0:fb3a37cd5aac 46 rgb.attach(&blink_rgb,1.0);// confiracion de la ISR para que se genere cada 1 segundo indicando la funcion que se ejecutara.
Alonso 0:fb3a37cd5aac 47
Alonso 0:fb3a37cd5aac 48 while(1)
Alonso 0:fb3a37cd5aac 49 {
Alonso 0:fb3a37cd5aac 50
Alonso 0:fb3a37cd5aac 51 }
Alonso 0:fb3a37cd5aac 52 }