Mario Neubauer
/
InterruptIn_btnfall_btnrise
Interrupt In btn fall und rise
main.cpp
- Committer:
- gigo2191
- Date:
- 2020-01-11
- Revision:
- 0:92d206ce2036
File content as of revision 0:92d206ce2036:
#include "mbed.h" BusOut leds (D12, D11, D10, D9); InterruptIn btn (A0); bool linkslauf = true; //aktiviert den linkslauf bool rechtslauf = false; //aktiviert den rechtslauf uint8_t led = 0; //Variable für die Led Ticker t1; void left() // wenn der linkslauf aktiviert ist { if(led == 0) led = 1; leds = led; led = led << 1; rechtslauf = false; linkslauf = false; } void right() // wenn der rechtslauf aktiviert ist { if(led == 0) led = 8; leds = led; led = led >> 1; linkslauf = true; rechtslauf = false; } void timer1() { if(linkslauf) //wenn der linkslauf aktiviert ist t1.attach(callback(&left), 1.0f); else rechtslauf = true; //sonst wird der rechtslauf aktiviert } void timer2() { if(rechtslauf) //wenn gerade linkslauf aktiviert ist, wird der rechtslauf aktiviert, reagiert auf btn.fall t1.attach((right), 1.0f); } int main() { btn.rise(timer1); //für den linkslauf btn.fall(timer2); //für den rechtslauf }