Skip to content

Commit

Permalink
Fixed test pattern flicker
Browse files Browse the repository at this point in the history
  • Loading branch information
2dom committed Oct 25, 2019
1 parent 0312b1e commit 685e11d
Showing 1 changed file with 25 additions and 13 deletions.
38 changes: 25 additions & 13 deletions PxMatrix.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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)
{
Expand All @@ -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);
}


Expand All @@ -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)
Expand All @@ -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);
}
}

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -1091,7 +1087,6 @@ void PxMATRIX::flushDisplay(void) {
}

void PxMATRIX::displayTestPattern(uint16_t show_time) {
_test_mode=true;

if ((millis()-_test_last_call)>500)
{
Expand All @@ -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();
Expand All @@ -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);

Expand Down

0 comments on commit 685e11d

Please sign in to comment.