Bitmanipulation mit Stick

Dependencies:   mbed

Revision:
1:d2cce2700a45
Parent:
0:da2c2685a56c
Child:
2:cf14d4fb9e33
--- a/main.cpp	Mon Dec 02 18:28:53 2019 +0000
+++ b/main.cpp	Mon Dec 16 18:22:18 2019 +0000
@@ -1,39 +1,44 @@
 #include "mbed.h"
+#define btn1 p14     // push joystick pin
+#define btn2 p12    //  joystick down
+ 
+BusOut leds(LED1,LED2,LED3,LED4);
 
-BusOut leds(LED1, LED2, LED3, LED4);
-DigitalIn btndown(p12);
-DigitalIn btnleft(p13);
-DigitalIn btnpush(p14);
-DigitalIn btnup(p15);
-DigitalIn btnright(p16);
+Timer t1; 
+Ticker tick1, tick2;
+Timeout tout;
+InterruptIn btn_push(btn1);
+InterruptIn btn_down(btn2);
+ 
+void blink_led1() 
+{
+    leds = leds^0b0001;        
+}
+ 
+void shiftled() 
+{       
+    leds = leds | leds << 1;
+}
+ 
+void turn_led2_on() 
+{
+    leds = 0b0010;
+}
 
-void ledsreset(uint8_t mask);
-void shiftlinks();
-
+void ledsoff()
+{
+    leds = 0b0000;
+}
+ 
 int main() 
 {
-    uint8_t mask = 0b00001111;
-    uint8_t value = 0b01010101;
-    while(1)
-    {      
-       //leds = mask & value;
-       ledsreset(mask);
-       
-       if(btnleft)
-        {
-            shiftlinks();
-        } 
-    }
+    //t1.start();
+    
+    tick1.attach(callback(&blink_led1), 1.0f);
+    tick2.attach(callback(&ledsoff), 10.0f);
+    
+    btn_push.rise(callback(&turn_led2_on));
+    btn_down.rise(callback(&shiftled));
+    //btn.fall(callback(&toggle_led2));
+ 
 }
-void ledsreset(uint8_t mask)
-{
-    if(btnpush == 1)
-        {
-            leds = mask;
-        }
-}
-void shiftlinks()
-{
-    leds = leds << 1;
-    wait_ms(500);
-}
\ No newline at end of file