#define PxMATRIX_MAX_HEIGHT 64
#define PxMATRIX_MAX_WIDTH 128
 
#include <PxMatrix.h>
#include <Ticker.h>
 
Ticker display_ticker;
 
#define P_LAT D0
#define P_A D1
#define P_B D2
#define P_C D8
#define P_OE D4
 
PxMATRIX display(128,64,P_LAT, P_OE,P_A,P_B,P_C);
 
void display_updater()
{
  display.displayTestPattern(50);
}
 
uint16_t myCYAN = display.color565(0, 255, 255);
 
void setup() {
  Serial.begin(9600);
  display.begin(32);
  display.setMuxPattern(ABC);
  display.setFastUpdate(true);
  display.flushDisplay();
  display.setTextColor(myCYAN);
  display.setCursor(2,0);
  display.print("Pixel");
  Serial.println("hello");
 
  display_ticker.attach(0.01, display_updater);
 
  delay(1000);
}
 
 
void loop() {
 delay(100);
}
#define PxMATRIX_MAX_HEIGHT 64
#define PxMATRIX_MAX_WIDTH 128
 
#include <PxMatrix.h>
#include <Ticker.h>
 
Ticker display_ticker;
 
#define P_LAT D0
#define P_A D1
#define P_B D2
#define P_C D8
#define P_OE D4
 
#define matrix_width 128
#define matrix_height 64
 
uint8_t display_draw_time=20; //10-50 is usually fine
 
PxMATRIX display(128,64,P_LAT, P_OE,P_A,P_B,P_C);
 
// Some standard colors
uint16_t myRED = display.color565(255, 0, 0);
uint16_t myGREEN = display.color565(0, 255, 0);
uint16_t myBLUE = display.color565(0, 0, 255);
uint16_t myWHITE = display.color565(255, 255, 255);
uint16_t myYELLOW = display.color565(255, 255, 0);
uint16_t myCYAN = display.color565(0, 255, 255);
uint16_t myMAGENTA = display.color565(255, 0, 255);
uint16_t myBLACK = display.color565(0, 0, 0);
 
uint16_t myCOLORS[8]={myRED,myGREEN,myBLUE,myWHITE,myYELLOW,myCYAN,myMAGENTA,myBLACK};
 
// ISR for display refresh
void display_updater()
{
  display.display(display_draw_time);
}
 
void display_update_enable(bool is_enable)
{
  if (is_enable){
    display_ticker.attach(0.01, display_updater);
  } else {
    display_ticker.detach();
  }
}
 
void setup() {
  Serial.begin(9600);
  display.begin(32);
  display.setMuxPattern(ABC);
  display.setFastUpdate(true);
  display_update_enable(true);
 
  display.clearDisplay();
  display.setTextColor(myYELLOW);
  display.setCursor(2,2);
  display.print("This is a test");
  display.drawLine(2, 10, 85, 10, myCYAN);
  display.setTextColor(myMAGENTA);
  display.setCursor(97,2);
  display.print("15:50");
  display.setCursor(2,11);
  display.setTextColor(myCYAN);
  display.print("Line 1");
  display.setCursor(2,19);
  display.setTextColor(myWHITE);
  display.print("Second Line");
  display.setCursor(2,27);
  display.setTextColor(myCYAN);
  display.print("Third Line");
  display.setCursor(2,35);
  display.setTextColor(myWHITE);
  display.print("Fourth Line");
  display.setCursor(2,43);
  display.setTextColor(myCYAN);
  display.print("Sixth Line");
  display.setCursor(2,51);
  display.setTextColor(myWHITE);
  display.print("Seventh Line");
 
  display.setCursor(73,25);
  display.setTextSize(3);
  display.setTextColor(myMAGENTA);
  display.print("IDK");
  delay(5000);
}
 
 
int line = 0;
void loop() {
  display.clearDisplay();
  display.drawLine(0, line, 128, line, myCYAN);
  delay(100);
  if(line == 64){
    line = 0;
  } else {
    line++;
  }
}