GyverLibs / GyverOLED

Лёгкая и быстрая библиотека для OLED дисплея
MIT License
123 stars 20 forks source link

Как сделать, чтобы update() не очищал экран #11

Closed Omnificator closed 2 years ago

Omnificator commented 2 years ago

Добрый день! Мне нужно, чтобы всё ранее нарисованное изображение оставалось на экране. Но update() очищает буфер. Как это исправить? Дисплей подключён по SPI.

#define OLED_SPI_SPEED 4000000ul
#include <GyverOLED.h>

GyverOLED<SSD1306_128x64, OLED_BUFFER, OLED_SPI, 6, 7, 8> oled;

uint32_t timer;
int period = 10;
byte xpos, ypos = 0;

void setup() {
  oled.init();
  timer = millis();
}

void loop() {
  if(millis() - timer >= period) {
    timer += period;
    int xpos1 = (xpos + 3) & 127;
    int ypos1 = (ypos + 2) & 63;

    oled.circle(xpos, ypos, 5, OLED_FILL);
    oled.update();

    xpos = xpos1;
    ypos = ypos1;
  }
}
GyverLibs commented 2 years ago

привет. Забавно, на момент выхода поддержки SPI дисплеев всё работало отлично. Сейчас скачал подключил - не работает, update() заливает экран белым. Пока не знаю, где и как оно могло поломаться

upd. Понятно, при отправке по SPI весь буфер забивается 255, которые отправляет дисплей, спасибо стандартной библиотеке SPI. Сейчас переделаю выкачу релиз