Programa que utiliza los timer e interrupciones para encender y apagar los leds en un tiempo de 1 segundo y de medio segundo.

Dependencies:   mbed

Committer:
marcospostemsky
Date:
Mon Oct 14 12:59:04 2019 +0000
Revision:
0:9a7d51dd5bb7
code finished

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcospostemsky 0:9a7d51dd5bb7 1 /*
marcospostemsky 0:9a7d51dd5bb7 2 Author: Marcos Postemsky
marcospostemsky 0:9a7d51dd5bb7 3 */
marcospostemsky 0:9a7d51dd5bb7 4 #include "mbed.h"
marcospostemsky 0:9a7d51dd5bb7 5
marcospostemsky 0:9a7d51dd5bb7 6 /*Ticker son rutinas de interrupcion que dependen del tiempo y se implementan
marcospostemsky 0:9a7d51dd5bb7 7 con los timers internos e interrupciones del Cortex*/
marcospostemsky 0:9a7d51dd5bb7 8 Ticker toggler1;
marcospostemsky 0:9a7d51dd5bb7 9 Ticker toggler2;
marcospostemsky 0:9a7d51dd5bb7 10
marcospostemsky 0:9a7d51dd5bb7 11 /* Declaración de funciones */
marcospostemsky 0:9a7d51dd5bb7 12 void toggle_ledred();
marcospostemsky 0:9a7d51dd5bb7 13 void toggle_ledgreen();
marcospostemsky 0:9a7d51dd5bb7 14
marcospostemsky 0:9a7d51dd5bb7 15 /*Declaración de los leds*/
marcospostemsky 0:9a7d51dd5bb7 16 DigitalOut led_red(LED_RED);
marcospostemsky 0:9a7d51dd5bb7 17 DigitalOut led_green(LED_GREEN);
marcospostemsky 0:9a7d51dd5bb7 18
marcospostemsky 0:9a7d51dd5bb7 19 int main(){
marcospostemsky 0:9a7d51dd5bb7 20 led_red = 0; //Led rojo apagado
marcospostemsky 0:9a7d51dd5bb7 21 led_green = 0; //led verde apagado
marcospostemsky 0:9a7d51dd5bb7 22
marcospostemsky 0:9a7d51dd5bb7 23 /* Atachamos las funciones que queremos que se ejecuten periodicamente */
marcospostemsky 0:9a7d51dd5bb7 24 toggler1.attach(&toggle_ledred,1); // toggle led red cada 1000 ms (1 segundo)
marcospostemsky 0:9a7d51dd5bb7 25 toggler2.attach(&toggle_ledgreen,0.5); // toggle led green cada 500 ms
marcospostemsky 0:9a7d51dd5bb7 26
marcospostemsky 0:9a7d51dd5bb7 27 while(true) {
marcospostemsky 0:9a7d51dd5bb7 28 }
marcospostemsky 0:9a7d51dd5bb7 29 }
marcospostemsky 0:9a7d51dd5bb7 30
marcospostemsky 0:9a7d51dd5bb7 31 void toggle_ledred() {
marcospostemsky 0:9a7d51dd5bb7 32 led_red = !led_red;
marcospostemsky 0:9a7d51dd5bb7 33 }
marcospostemsky 0:9a7d51dd5bb7 34
marcospostemsky 0:9a7d51dd5bb7 35 void toggle_ledgreen() {
marcospostemsky 0:9a7d51dd5bb7 36 led_green = !led_green;
marcospostemsky 0:9a7d51dd5bb7 37 }
marcospostemsky 0:9a7d51dd5bb7 38