diff options
Diffstat (limited to 'software/software.ino')
-rw-r--r-- | software/software.ino | 51 |
1 files changed, 8 insertions, 43 deletions
diff --git a/software/software.ino b/software/software.ino index 8c454ac..323a79b 100644 --- a/software/software.ino +++ b/software/software.ino @@ -1,30 +1,13 @@ +#include "software.h" #include "consts.h" +#include "effects.h" +#include "scan.h" -extern unsigned long frame_time_millis; -bool led_state[64]; - -void shift(unsigned char data) { - #ifdef DEBUG - Serial.print("Sending data to shift register: "); - Serial.println(data, BIN); - #endif +unsigned long frame_time_millis = 0; - // pull down latch register - digitalWrite(PINOUT_LCK, LOW); - - for(int i = 0; i < 8; i++) { - bool bit = data & 1 << i > 0; +bool led_state[64]; - // schrijf bit en pulse serial clock - digitalWrite(PINOUT_SER, bit); - digitalWrite(PINOUT_SCK, HIGH); - delayMicroseconds(CONFIG_SRSER_DELAY); - digitalWrite(PINOUT_SCK, LOW); - } - - // pull up latch register - digitalWrite(PINOUT_LCK, HIGH); -} +bool scan_enable = true; void setup() { pinMode(PINOUT_SER, OUTPUT); @@ -38,26 +21,6 @@ void setup() { frame_time_millis = 1000 / CONFIG_FRAMERATE * CONFIG_FRAMERATE; } -void test_effect1(unsigned long relative_time, bool (*leds)[64]) { - return; -} -void test_effect2(unsigned long relative_time, bool (*leds)[64]) { - return; -} -void test_effect3(unsigned long relative_time, bool (*leds)[64]) { - return; -} - - -#define SLIDESHOW_SIZE ( (int) 3 ) -#define SLIDESHOW_DURATION ( (int) 5e3 ) -// evil function pointer array -void ( * slideshow_effects [SLIDESHOW_SIZE] )( unsigned long relative_time, bool (*leds)[64] ) = { - test_effect1, - test_effect2, - test_effect3 -}; - void loop() { unsigned long current_time = millis(); @@ -65,4 +28,6 @@ void loop() { unsigned int slide_index = (current_time / SLIDESHOW_DURATION) % SLIDESHOW_SIZE; slideshow_effects[slide_index](slide_time, &led_state); + + if (scan_enable) scan(); } |