P10 32x16 LED panel ¼ SCAN Working With NO C address

I have the panel working with no split screen now, still working on multi-color - but can change R/G/B in address. The panel I am using is a P10 with A and B addresses only - no C or D. I altered the matrix so the panel is complete, but now I am getting too much flicker. I will share the code in the next line.
Still working on this, I am better at hardware than software, don't judge.

//**************************************************************//
// Following codes simply shifts out data for 16x32 LED matrix.
//****************************************************************
uint64_t row1[64];
uint64_t row2[64];
uint64_t row3[64];
uint64_t row4[64];
uint64_t temp;
int LP = 10; // Latch Pin 8
int ClkP = 8; // Clock Pin 12
int R1P = 2; // R1 Pin 11
int B1P = 3; // B1 Pin 10
int G1P = 4; // G1 Pin 9
int R2P = 5; // R2 Pin 7
int B2P = 6; // B2 Pin 6
int G2P = 7; // G2 Pin 5
int AP = A0; // A Pin 2
int BP = A1; // B Pin 3
//int CP = A2; // C Pin 4
int OEP = 9; // OE Pin 14
int row = 0;
uint8_t i;

void setup() {
//set pins to output so you can control the shift register
pinMode(LP, OUTPUT);
pinMode(ClkP, OUTPUT);
pinMode(R1P, OUTPUT);
pinMode(B1P, OUTPUT);
pinMode(G1P, OUTPUT);
pinMode(R2P, OUTPUT);
pinMode(B2P, OUTPUT);
pinMode(G2P, OUTPUT);
pinMode(AP,OUTPUT);
pinMode(BP,OUTPUT);
//pinMode(CP,OUTPUT);
pinMode(OEP,OUTPUT);
digitalWrite(AP, LOW);
digitalWrite(BP, LOW);
// digitalWrite(CP, LOW);
digitalWrite(LP, LOW);
digitalWrite(OEP, LOW);
row=0;
temp = 0x0000000000000001;
row1[0]=0xFFB1FFA5FF02FF11;
row1[1]=0x80B100A500020111;
row4[2]=0xB180A10002001101;
row4[3]=0xB1FFA1FF02FF31FF;
row4[4]=0xB19BA12102025111;
row4[5]=0xB18EA12102F21111;
row1[6]=0x8EB139A5F2021191;
row1[7]=0x9BB125B903E21111;
}

void loop()
{for(row=0; row<8; row++)
{for (i = 0; i <64; i++) {
digitalWrite(B1P, !!(row1[row] & (temp << (63-i))));
digitalWrite(R1P, 0);
digitalWrite(G1P, 0);
digitalWrite(B2P, !!(row4[row] & (temp << (63-i))));
digitalWrite(R2P, 0);
digitalWrite(G2P, 0);
digitalWrite(ClkP, HIGH);
digitalWrite(ClkP, LOW);
}
digitalWrite(OEP, HIGH);
digitalWrite(LP, HIGH);
digitalWrite(AP, !!(row & B00000001));
digitalWrite(BP, !!(row & B00000010));
// digitalWrite(CP, !!(row & B00000100));
digitalWrite(OEP, LOW);
digitalWrite(LP, LOW);
delay(0);}}

Hello

Try this library GitHub - freetronics/DMD: Arduino library to support the Freetronics Dot Matrix Display

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.