Skocz do zawartości

Adafruit GFX + ESP8266


multidot

Pomocna odpowiedź

Cześć.

Mam podłączony lcd ILI9341 pod ESP8266, korzystam z biblioteki adafruit GFX i nie wiem jak działa funkcja.

 

void GFXcanvas1::drawPixel(int16_t x, int16_t y, uint16_t color) {
  if (buffer) {
    if ((x < 0) || (y < 0) || (x >= _width) || (y >= _height))
      return;

    int16_t t;
    switch (rotation) {
    case 1:
      t = x;
      x = WIDTH - 1 - y;
      y = t;
      break;
    case 2:
      x = WIDTH - 1 - x;
      y = HEIGHT - 1 - y;
      break;
    case 3:
      t = x;
      x = y;
      y = HEIGHT - 1 - t;
      break;
    }

    uint8_t *ptr = &buffer[(x / 8) + y * ((WIDTH + 7) / 8)];
#ifdef __AVR__
    if (color)
      *ptr |= pgm_read_byte(&GFXsetBit[x & 7]);
    else
      *ptr &= pgm_read_byte(&GFXclrBit[x & 7]);
#else
    if (color)
      *ptr |= 0x80 >> (x & 7);
    else
      *ptr &= ~(0x80 >> (x & 7));
#endif
  }
}

tzn. 

Napełnia bufor danymi ale kiedy te dane są wysyłane do LCD??

Link do komentarza
Share on other sites

36 minut temu, multidot napisał:

kiedy te dane są wysyłane do LCD

Nigdy - klasa canvas nie ma nic wspólnego z fizycznym displayem i służy właśnie do modyfikacji danych w buforze. Możesz oczywiście wyświetlić zawartość bufora używając metofy drawBitmap, ale sama się magicznie nie wyświetli.

Więcej informacji tutaj.

 

  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...