timers

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
Alonso
Date:
Fri May 29 13:21:25 2015 +0000
Commit message:
lab8 para fime

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri May 29 13:21:25 2015 +0000
@@ -0,0 +1,52 @@
+#include "mbed.h"
+/*  En esta practica se muestra la configuracion para el uso de ISR(interrupt serrvice rutine)
+    del microcontrolador que usa la FRDM, la practica trata de cambiar el estado del led rgb
+    en sus 3 colores diferentes, rojo, verde y azul, en peridos de 1 segundo. Para la demostracion
+    se programa una maquina de estados*/
+    
+Ticker rgb; // se le asigna un identificador a la ISR que se va a utilizar llamado rgb.
+
+DigitalOut rgb_rojo(LED_RED,1); // se configura el led rojo como salida, estado incial apagado
+DigitalOut rgb_verde(LED_GREEN,1);// se configura el led verde como salida, estado incial apagado
+DigitalOut rgb_azul(LED_BLUE,1);// se configura el led azul como salida, estado incial apagado
+int estado_led=1; // variable que se usa en la maquina de estados para el cambio de color del rgb
+
+void blink_rgb(void) // funcion que se llama cada 1 segundo por la ISR
+{
+    switch(estado_led)
+    {
+        case 1: 
+            rgb_rojo = 0; 
+            rgb_verde = 1;
+            rgb_azul = 1;
+            estado_led = 2; // se cambia el valor de variable a 2
+            break;
+        case 2:
+            rgb_rojo = 1;
+            rgb_verde = 0;
+            rgb_azul = 1;
+            estado_led = 3;// se cambia el valor de variable a 3
+            break;
+         case 3:
+            rgb_rojo = 1;
+            rgb_verde = 1;
+            rgb_azul = 0;
+            estado_led = 1;// se resetea el valor de la variable a 1.
+            break; 
+        default: // led rgb apagado
+            rgb_rojo = 1;
+            rgb_verde = 1;
+            rgb_azul = 1;
+            break;
+    }
+}
+
+int main() 
+{
+    rgb.attach(&blink_rgb,1.0);// confiracion de la ISR para que se genere cada 1 segundo indicando la funcion que se ejecutara.
+       
+    while(1) 
+    {
+        
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri May 29 13:21:25 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/dbbf35b96557
\ No newline at end of file