Created
November 19, 2020 06:41
-
-
Save tanakamasayuki/b3aa71e323dbdfecb456517efd413a13 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "M5Lite.h" | |
static LGFX_Sprite sprite[2](&M5Lite.Lcd); | |
static LGFX_Sprite spritePSRAM[2](&M5Lite.Lcd); | |
void setup() { | |
unsigned long startTime; | |
unsigned long endTime; | |
M5Lite.begin(); | |
sprite[0].setPsram(false); | |
sprite[0].createSprite(320, 80); | |
sprite[1].setPsram(false); | |
sprite[1].createSprite(320, 80); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("clear() : "); | |
startTime = micros(); | |
M5Lite.Lcd.clear(TFT_RED); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/001.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("clear() + startWrite() : "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
M5Lite.Lcd.clear(TFT_RED); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/002.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("pushSprite() : "); | |
startTime = micros(); | |
sprite[0].fillScreen(TFT_RED); | |
sprite[0].pushSprite(0, 0); | |
sprite[1].fillScreen(TFT_BLUE); | |
sprite[1].pushSprite(0, 80); | |
sprite[0].fillScreen(TFT_RED); | |
sprite[0].pushSprite(0, 160); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/003.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("pushSprite() + startWrite(): "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
sprite[0].fillScreen(TFT_RED); | |
sprite[0].pushSprite(0, 0); | |
sprite[1].fillScreen(TFT_BLUE); | |
sprite[1].pushSprite(0, 80); | |
sprite[0].fillScreen(TFT_RED); | |
sprite[0].pushSprite(0, 160); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/004.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("pushPixels() : "); | |
startTime = micros(); | |
sprite[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixels((uint16_t*)sprite[0].getBuffer(), 320 * 80); | |
sprite[1].fillScreen(TFT_BLUE); | |
M5Lite.Lcd.pushPixels((uint16_t*)sprite[1].getBuffer(), 320 * 80); | |
sprite[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixels((uint16_t*)sprite[0].getBuffer(), 320 * 80); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/005.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("pushPixels() + startWrite() : "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
sprite[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixels((uint16_t*)sprite[0].getBuffer(), 320 * 80); | |
sprite[1].fillScreen(TFT_BLUE); | |
M5Lite.Lcd.pushPixels((uint16_t*)sprite[1].getBuffer(), 320 * 80); | |
sprite[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixels((uint16_t*)sprite[0].getBuffer(), 320 * 80); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/006.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("pushPixelsDMA() : "); | |
startTime = micros(); | |
sprite[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)sprite[0].getBuffer(), 320 * 80); | |
sprite[1].fillScreen(TFT_BLUE); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)sprite[1].getBuffer(), 320 * 80); | |
sprite[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)sprite[0].getBuffer(), 320 * 80); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/007.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("pushPixelsDMA() + startWrite() : "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
sprite[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)sprite[0].getBuffer(), 320 * 80); | |
sprite[1].fillScreen(TFT_BLUE); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)sprite[1].getBuffer(), 320 * 80); | |
sprite[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)sprite[0].getBuffer(), 320 * 80); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/008.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("pushSprite() + delay() : "); | |
startTime = micros(); | |
sprite[0].fillScreen(TFT_RED); | |
sprite[0].pushSprite(0, 0); | |
delay(5); | |
sprite[1].fillScreen(TFT_BLUE); | |
sprite[1].pushSprite(0, 80); | |
delay(5); | |
sprite[0].fillScreen(TFT_RED); | |
sprite[0].pushSprite(0, 160); | |
delay(5); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/009.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("pushSprite() + delay() + startWrite() : "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
sprite[0].fillScreen(TFT_RED); | |
sprite[0].pushSprite(0, 0); | |
delay(5); | |
sprite[1].fillScreen(TFT_BLUE); | |
sprite[1].pushSprite(0, 80); | |
delay(5); | |
sprite[0].fillScreen(TFT_RED); | |
sprite[0].pushSprite(0, 160); | |
delay(5); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/010.bmp"); | |
// PSRAM | |
spritePSRAM[0].setPsram(true); | |
spritePSRAM[0].createSprite(320, 80); | |
spritePSRAM[1].setPsram(true); | |
spritePSRAM[1].createSprite(320, 80); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("spritePSRAM pushSprite() : "); | |
startTime = micros(); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
spritePSRAM[0].pushSprite(0, 0); | |
spritePSRAM[1].fillScreen(TFT_BLUE); | |
spritePSRAM[1].pushSprite(0, 80); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
spritePSRAM[0].pushSprite(0, 160); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/011.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("spritePSRAM pushSprite() + startWrite() : "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
spritePSRAM[0].pushSprite(0, 0); | |
spritePSRAM[1].fillScreen(TFT_BLUE); | |
spritePSRAM[1].pushSprite(0, 80); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
spritePSRAM[0].pushSprite(0, 160); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/012.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("spritePSRAM pushPixels() : "); | |
startTime = micros(); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixels((uint16_t*)spritePSRAM[0].getBuffer(), 320 * 80); | |
spritePSRAM[1].fillScreen(TFT_BLUE); | |
M5Lite.Lcd.pushPixels((uint16_t*)spritePSRAM[1].getBuffer(), 320 * 80); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixels((uint16_t*)spritePSRAM[0].getBuffer(), 320 * 80); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/013.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("spritePSRAM pushPixels() + startWrite() : "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixels((uint16_t*)spritePSRAM[0].getBuffer(), 320 * 80); | |
spritePSRAM[1].fillScreen(TFT_BLUE); | |
M5Lite.Lcd.pushPixels((uint16_t*)spritePSRAM[1].getBuffer(), 320 * 80); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixels((uint16_t*)spritePSRAM[0].getBuffer(), 320 * 80); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/014.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("spritePSRAM pushPixelsDMA() : "); | |
startTime = micros(); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)spritePSRAM[0].getBuffer(), 320 * 80); | |
spritePSRAM[1].fillScreen(TFT_BLUE); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)spritePSRAM[1].getBuffer(), 320 * 80); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)spritePSRAM[0].getBuffer(), 320 * 80); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/015.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("spritePSRAM pushPixelsDMA() + startWrite() : "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)spritePSRAM[0].getBuffer(), 320 * 80); | |
spritePSRAM[1].fillScreen(TFT_BLUE); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)spritePSRAM[1].getBuffer(), 320 * 80); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
M5Lite.Lcd.pushPixelsDMA((uint16_t*)spritePSRAM[0].getBuffer(), 320 * 80); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/016.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("spritePSRAM pushSprite() + delay() : "); | |
startTime = micros(); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
spritePSRAM[0].pushSprite(0, 0); | |
delay(5); | |
spritePSRAM[1].fillScreen(TFT_BLUE); | |
spritePSRAM[1].pushSprite(0, 80); | |
delay(5); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
spritePSRAM[0].pushSprite(0, 160); | |
delay(5); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/017.bmp"); | |
//-------------------------------- | |
M5Lite.Lcd.clear(); | |
Serial.print("spritePSRAM pushSprite() + delay() + startWrite() : "); | |
startTime = micros(); | |
M5Lite.Lcd.startWrite(); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
spritePSRAM[0].pushSprite(0, 0); | |
delay(5); | |
spritePSRAM[1].fillScreen(TFT_BLUE); | |
spritePSRAM[1].pushSprite(0, 80); | |
delay(5); | |
spritePSRAM[0].fillScreen(TFT_RED); | |
spritePSRAM[0].pushSprite(0, 160); | |
delay(5); | |
M5Lite.Lcd.endWrite(); | |
endTime = micros(); | |
Serial.println(endTime - startTime); | |
//M5Lite.Ex.screenshot(SD, "/018.bmp"); | |
} | |
void loop() { | |
M5Lite.Ex.delay(1000); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment