diff --git a/PxMatrix.h b/PxMatrix.h index 10bb840..09e59fc 100644 --- a/PxMatrix.h +++ b/PxMatrix.h @@ -213,9 +213,6 @@ class PxMATRIX : public Adafruit_GFX { uint8_t _color_G_offset; uint8_t _color_B_offset; - // Are we running PixelTest or PatternTest - bool _test_mode; - // Panel Brightness uint8_t _brightness; @@ -847,13 +844,13 @@ void PxMATRIX::set_mux(uint8_t value) digitalWrite(_A_PIN,HIGH); else digitalWrite(_A_PIN,LOW); - if (!_test_mode && _mux_delay_A) delayMicroseconds(_mux_delay_A); + if (_mux_delay_A) delayMicroseconds(_mux_delay_A); if (value & 0x02) digitalWrite(_B_PIN,HIGH); else digitalWrite(_B_PIN,LOW); - if (!_test_mode && _mux_delay_B) delayMicroseconds(_mux_delay_B); + if (_mux_delay_B) delayMicroseconds(_mux_delay_B); if (_row_pattern>=8) { @@ -862,7 +859,7 @@ void PxMATRIX::set_mux(uint8_t value) digitalWrite(_C_PIN,HIGH); else digitalWrite(_C_PIN,LOW); - if (!_test_mode && _mux_delay_C) delayMicroseconds(_mux_delay_C); + if (_mux_delay_C) delayMicroseconds(_mux_delay_C); } @@ -872,7 +869,7 @@ void PxMATRIX::set_mux(uint8_t value) digitalWrite(_D_PIN,HIGH); else digitalWrite(_D_PIN,LOW); - if (!_test_mode && _mux_delay_D) delayMicroseconds(_mux_delay_D); + if (_mux_delay_D) delayMicroseconds(_mux_delay_D); } if (_row_pattern>=32) @@ -881,7 +878,7 @@ void PxMATRIX::set_mux(uint8_t value) digitalWrite(_E_PIN,HIGH); else digitalWrite(_E_PIN,LOW); - if (!_test_mode && _mux_delay_E) delayMicroseconds(_mux_delay_E); + if (_mux_delay_E) delayMicroseconds(_mux_delay_E); } } @@ -960,7 +957,6 @@ void PxMATRIX::latch(uint16_t show_time ) void PxMATRIX::display(uint16_t show_time) { -_test_mode=false; if (show_time < 10) show_time =10; unsigned long start_time=0; @@ -1091,7 +1087,6 @@ void PxMATRIX::flushDisplay(void) { } void PxMATRIX::displayTestPattern(uint16_t show_time) { - _test_mode=true; if ((millis()-_test_last_call)>500) { @@ -1114,25 +1109,32 @@ void PxMATRIX::displayTestPattern(uint16_t show_time) { _test_line_counter=0; digitalWrite(_A_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_B_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_C_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_D_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_E_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_A_PIN,LOW); + delayMicroseconds(1); digitalWrite(_B_PIN,LOW); + delayMicroseconds(1); digitalWrite(_C_PIN,LOW); + delayMicroseconds(1); digitalWrite(_D_PIN,LOW); + delayMicroseconds(1); digitalWrite(_E_PIN,LOW); - + delayMicroseconds(1); set_mux(_test_line_counter); latch(show_time); } void PxMATRIX::displayTestPixel(uint16_t show_time) { - _test_mode=true; - if ((millis()-_test_last_call)>500) { flushDisplay(); @@ -1157,16 +1159,26 @@ void PxMATRIX::displayTestPixel(uint16_t show_time) { _test_line_counter=0; digitalWrite(_A_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_B_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_C_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_D_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_E_PIN,HIGH); + delayMicroseconds(1); digitalWrite(_A_PIN,LOW); + delayMicroseconds(1); digitalWrite(_B_PIN,LOW); + delayMicroseconds(1); digitalWrite(_C_PIN,LOW); + delayMicroseconds(1); digitalWrite(_D_PIN,LOW); + delayMicroseconds(1); digitalWrite(_E_PIN,LOW); + delayMicroseconds(1); set_mux(_test_line_counter);