diff --git a/.gitignore b/.gitignore index 16c015d..0f89dbd 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ .vscode/ipch *.cpp-old .vscode +.DS_Store diff --git a/src/main.cpp b/src/main.cpp index e53a42c..ca0fc70 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,6 +2,10 @@ static uint8_t led_duration = 8; +uint8_t rando_array[] = {0,3,6,9}; + +float rando_dreh_array[] = {0,0,0,0,0.01,-0.01}; + /* * Function: configureTimer @@ -64,27 +68,31 @@ float led_b_multiplier = led_a_multiplier + led_a_multiplier * 0.02; float led_c_multiplier = led_a_multiplier - led_a_multiplier * 0.02; void changeValue (uint8_t value) { - switch (value) - { - case 0: - led_a_multiplier = 3; - led_b_multiplier = 6; - led_c_multiplier = 9; - break; - - case 1: - led_a_multiplier = 6; - led_b_multiplier = 3; - led_c_multiplier = 6; - break; + led_a_multiplier = rando_array[random(0,3)] + led_a_multiplier * rando_dreh_array[random(0,5)]; + led_b_multiplier = rando_array[random(0,3)] + led_b_multiplier * rando_dreh_array[random(0,5)]; + led_c_multiplier = rando_array[random(0,3)] + led_c_multiplier * rando_dreh_array[random(0,5)]; - case 2: - led_a_multiplier = 9; - led_b_multiplier = 9; - led_c_multiplier = 3; - value_switcher = 0; - break; - } + // switch (value) + // { + // case 0: + // led_a_multiplier = 3; + // led_b_multiplier = 6; + // led_c_multiplier = 9; + // break; + + // case 1: + // led_a_multiplier = 6; + // led_b_multiplier = 3; + // led_c_multiplier = 6; + // break; + + // case 2: + // led_a_multiplier = 9; + // led_b_multiplier = 9; + // led_c_multiplier = 3; + // value_switcher = 0; + // break; + // } } /* @@ -164,7 +172,8 @@ ISR(TIMER0_COMPA_vect){ /* Emit strobe for LED A */ led_a_counter--; if (led_a_counter < led_duration) { - digitalWrite(2, HIGH); + if (led_a_period != 0) + digitalWrite(2, HIGH); if (!led_a_counter) { led_a_counter = led_a_period; } @@ -174,8 +183,9 @@ ISR(TIMER0_COMPA_vect){ /* Emit strobe for LED B */ led_b_counter--; - if (led_b_counter < led_duration*6) { - digitalWrite(3, HIGH); + if (led_b_counter < led_duration) { + if (led_b_period != 0) + digitalWrite(3, HIGH); if (!led_b_counter) { led_b_counter = led_b_period; } @@ -186,7 +196,8 @@ ISR(TIMER0_COMPA_vect){ /* Emit strobe for LED C */ led_c_counter--; if (led_c_counter < led_duration) { - digitalWrite(4, HIGH); + if (led_c_period != 0) + digitalWrite(4, HIGH); if (!led_c_counter) { led_c_counter = led_c_period; }