Testprogramm lauflicht

Dependencies:   mbed

Revision:
3:e46730634660
Parent:
2:f2a2e427327e
Child:
4:a0cc5eebc75e
--- a/main.cpp	Mon Jan 13 17:30:42 2020 +0000
+++ b/main.cpp	Mon Jan 13 17:38:50 2020 +0000
@@ -3,6 +3,7 @@
 
 void nibbleLeds(int value);
 void printb(uint8_t x);
+int lauflicht(bool richtung, int time, int &anz);
 
 BusOut myleds(LED1, LED2, LED3, LED4);
 DigitalIn button(BUTTON1);
@@ -13,11 +14,43 @@
     int anzahl, anz;
     uint8_t value = INIT;
     
+    anzahl = lauflicht(true , 400, anz=0);
+    printf("anzahl= %d\n", anzahl);
+    
     nibbleLeds(value);
     printb(value);
     wait(0.1);
 }
 
+int lauflicht(bool richtung, int time, int &anz)
+{
+    int i;
+    uint8_t lauf = 0x01;
+    
+    if(!richtung)
+        lauf = 0x08;
+    while(1)
+    {
+       nibbleLeds(lauf&0x0F);
+       if(richtung)
+       {
+           lauf = lauf << 1;
+           if(lauf > 8)
+                lauf = 0x01;
+       }
+       else
+       {
+           lauf = lauf >> 1;
+           if(lauf == 0);
+                lauf = 0x08;
+       } 
+       if(button)
+            break;
+       wait_ms(time);
+       anz++;
+    }
+    return anz;
+}
 void printb(uint8_t x)
 {
     for(int i=sizeof(x)<<3; i; i--)