Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <PxMatrix.h>
- #ifdef ESP32
- #define P_LAT 22
- #define P_A 19
- #define P_B 23
- #define P_C 18
- #define P_D 5
- #define P_E 15
- #define P_OE 2
- hw_timer_t * timer = NULL;
- portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
- #endif
- #ifdef ESP8266
- #include <Ticker.h>
- Ticker display_ticker;
- #define P_LAT 16
- #define P_A 5
- #define P_B 4
- #define P_C 15
- #define P_D 12
- #define P_E 0
- #define P_OE 2
- #endif
- // Pins for LED MATRIX
- PxMATRIX display(32,16,P_LAT, P_OE,P_A,P_B,P_C,P_D);
- //PxMATRIX display(64,32,P_LAT, P_OE,P_A,P_B,P_C,P_D);
- //PxMATRIX display(64,64,P_LAT, P_OE,P_A,P_B,P_C,P_D,P_E);
- #ifdef ESP8266
- // ISR for display refresh
- void display_updater()
- {
- // display.displayTestPixel(70);
- display.display(50);
- }
- #endif
- #ifdef ESP32
- void IRAM_ATTR display_updater(){
- // Increment the counter and set the time of ISR
- portENTER_CRITICAL_ISR(&timerMux);
- //isplay.display(70);
- display.displayTestPattern(70);
- portEXIT_CRITICAL_ISR(&timerMux);
- }
- #endif
- uint16_t myCYAN = display.color565(0, 255, 255);
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(9600);
- display.begin(4);
- display.setMuxPattern(STRAIGHT);
- display.setScanPattern(ZAGGIZ);
- display.flushDisplay();
- display.setTextColor(myCYAN);
- display.setCursor(2,0);
- // display.print("Pixel");
- // Serial.println("hello");
- #ifdef ESP8266
- display_ticker.attach(0.002, display_updater);
- #endif
- #ifdef ESP32
- timer = timerBegin(0, 80, true);
- timerAttachInterrupt(timer, &display_updater, true);
- timerAlarmWrite(timer, 2000, true);
- timerAlarmEnable(timer);
- #endif
- delay(1000);
- }
- void loop() {
- for (int xx=0; xx<16;xx++) {
- display.drawPixelRGB888 (xx,xx,128,128,0);
- delay(300);
- }
- }
Add Comment
Please, Sign In to add comment