Stefan Hutter
/
test_hutter_1
Testkommentierung
Diff: main.cpp
- Revision:
- 2:eb423fa2307d
- Parent:
- 1:2ec5da856794
- Child:
- 3:4a342d7daf98
--- a/main.cpp Mon Jan 13 17:22:10 2020 +0000 +++ b/main.cpp Mon Jan 13 18:04:45 2020 +0000 @@ -3,20 +3,65 @@ #define Button1 p14 void nibbleleds(int); // funktionsprototyp +int laufLicht(bool,int, int); BusOut myleds(LED1,LED2,LED3,LED4); // 4leds zu bus zusammenfügen DigitalIn button(Button1); // BTN. 1 als input -int value=3; +const int INIT=3; int main() { - while(1) { - nibbleleds(value); // Nibbleleds_Funktion aufrufen - + + int anz, anzahl; + uint8_t value=INIT; + + anzahl=laufLicht(true, 400, anz=0); + + + + nibbleleds(value); // Nibbleleds_Funktion aufrufen und wert von value übergeben + + while(1) { } } void nibbleleds(int value){ myleds=value%16; //value=3 modulo 16 ist 0 => leds dunkel + } + +int laufLicht(bool richtung, int time, int &anz){ + int i; + + uint8_t lauf=0x8; + + if(!richtung){ //.. wenn richtung == false.... + lauf=0x08; // ...setze lauf auf 8. + } + + while(1){ + nibbleleds(lauf&0x0F); + + if(richtung){ + lauf=lauf<<1; // wert von lauf verdoppeln + if(lauf>8){ // wenn wert von lauf >8... + lauf=0x01; // dann setze lauf auf 1 + } + } + else{ + lauf=lauf>>1; // sonst wert von lauf halbieren + if(lauf==0){ // wenn wert von lauf 0 ist, + lauf=0x08; // ..setze lauf auf 8 + } + } + + if(button){ //wenn button == high... + break; // .... verlasse lauflicht-Schleife + } + + wait_ms(time); // warten wert von time in mS + anz++; // zähler für schleifendurchläufe um eins erhöhen + } + return anz; // Funktion verlassen und wert von anz zurueckgeben.. + } \ No newline at end of file