
Programa que utiliza los timer e interrupciones para encender y apagar los leds en un tiempo de 1 segundo y de medio segundo.
main.cpp@0:9a7d51dd5bb7, 2019-10-14 (annotated)
- Committer:
- marcospostemsky
- Date:
- Mon Oct 14 12:59:04 2019 +0000
- Revision:
- 0:9a7d51dd5bb7
code finished
Who changed what in which revision?
User | Revision | Line number | New 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 |