diff --git a/flipcontrol_esp32/include/image.h b/flipcontrol_esp32/include/image.h index 8c1ac66..1bcdab0 100644 --- a/flipcontrol_esp32/include/image.h +++ b/flipcontrol_esp32/include/image.h @@ -32,6 +32,7 @@ private: unsigned long updateInterval; + public: @@ -44,9 +45,12 @@ public: uint8_t getH(); //returns Rows void setBuffer_solid(bool set); + void setBuffer_random(uint8_t randomness); void loop_testDots(); void loop_drawClearTest(); + + unsigned long updateDuration; //for statistics and debugging. time it took for one update (max) }; #endif diff --git a/flipcontrol_esp32/src/image.cpp b/flipcontrol_esp32/src/image.cpp index d797259..fbbf2e7 100644 --- a/flipcontrol_esp32/src/image.cpp +++ b/flipcontrol_esp32/src/image.cpp @@ -14,7 +14,7 @@ void Image::init() flag_updating=false; update_counter=0; - updateInterval=50; + updateInterval=30; } uint8_t Image::getW() { @@ -39,16 +39,35 @@ void Image::setBuffer_solid(bool set) } +void Image::setBuffer_random(uint8_t randomness) +{ + for (uint8_t x=0;x=getW()) { //reached last column flag_updating=false; update_counter=0; diff --git a/flipcontrol_esp32/src/main.cpp b/flipcontrol_esp32/src/main.cpp index f9c7666..39530bb 100644 --- a/flipcontrol_esp32/src/main.cpp +++ b/flipcontrol_esp32/src/main.cpp @@ -27,16 +27,34 @@ void loop() { static unsigned long last_change=0; static bool color=0; - if (loopmillis-last_change >= 10000) + if (loopmillis-last_change >= 5000) { - Serial.print("Change to Solid color ="); Serial.println(color); - flip.setBuffer_solid(color); - color=1-color; + //Serial.print("Change to Solid color ="); Serial.println(color); + //flip.setBuffer_solid(color); + //color=1-color; + + uint8_t _randomvalue=random(256); + Serial.print("set buffer random. "); + Serial.println(_randomvalue); + flip.setBuffer_random(_randomvalue); last_change=loopmillis; } + static bool last_result; + bool result=flip.updateByColumn(0,0,0,0); //0=not finished, 1=finished + if (result && !last_result) //just finished + { + unsigned long duration=millis()-last_change; + Serial.print("Last Change took "); Serial.print(duration); Serial.println(" ms"); + Serial.print("Update max took "); Serial.print(flip.updateDuration); Serial.println(" ms"); + flip.updateDuration=0; //reset + } + last_result=result; + + + /* if (loopmillis > last_update + UPDATE_INTERVAL) { Serial.print("UpdateByColumn "); @@ -45,6 +63,7 @@ void loop() { last_update=loopmillis; } + */ /*