Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Adafruit_ST7735.h"
- #include "mbed.h"
- #include "rtos.h"
- Adafruit_ST7735 tft(D11, D12, D13, D10, D8,
- D9); // MOSI, MISO, SCLK, SSEL, TFT_DC, TFT_RSTss
- Thread displayThread;
- void display();
- void testlines(uint16_t color);
- void testfastlines(uint16_t color1, uint16_t color2);
- void testdrawrects(uint16_t color);
- void testfillrects(uint16_t color1, uint16_t color2);
- void testfillcircles(uint8_t radius, uint16_t color);
- void testdrawcircles(uint8_t radius, uint16_t color);
- void testtriangles(void);
- void testroundrects(void);
- void mediabuttons(void);
- void testdrawtext(char *text, uint16_t color);
- void tftPrintTest(void);
- int main(void) {
- printf("Start\r\n");
- displayThread.start(display);
- while (1) {
- }
- }
- void display() {
- printf("Display Thread \r\n");
- // Use this initializer if you're using a 1.8" TFT
- tft.initR(); // initialize a ST7735S chip, black tab
- tft.setRotation(1);
- tft.fillScreen(ST7735_BLACK);
- char hello[] =
- "123Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur "
- "adipiscing ante sed nibh tincidunt feugiat. Maecenas enim massa, "
- "fringilla sed malesuada et, malesuada sit amet turpis. Sed porttitor "
- "neque ut ante pretium vitae malesuada nunc bibendum. Nullam aliquet "
- "ultrices massa eu hendrerit. Ut sed nisi lorem. In vestibulum purus a "
- "tortor imperdiet posuere. ";
- testdrawtext(hello, ST7735_WHITE);
- ThisThread::sleep_for(1000);
- // tft print function!
- tftPrintTest();
- ThisThread::sleep_for(1000);
- tft.drawPixel(tft.width() / 2, tft.height() / 2, ST7735_GREEN);
- ThisThread::sleep_for(500);
- testlines(ST7735_YELLOW);
- ThisThread::sleep_for(500);
- testfastlines(ST7735_RED, ST7735_BLUE);
- ThisThread::sleep_for(500);
- testdrawrects(ST7735_GREEN);
- ThisThread::sleep_for(500);
- testfillrects(ST7735_YELLOW, ST7735_MAGENTA);
- ThisThread::sleep_for(500);
- tft.fillScreen(ST7735_BLACK);
- testfillcircles(10, ST7735_BLUE);
- testdrawcircles(10, ST7735_WHITE);
- ThisThread::sleep_for(500);
- testroundrects();
- ThisThread::sleep_for(500);
- testtriangles();
- ThisThread::sleep_for(500);
- mediabuttons();
- ThisThread::sleep_for(500);
- while (1) {
- tft.invertDisplay(true);
- ThisThread::sleep_for(500);
- tft.invertDisplay(false);
- ThisThread::sleep_for(500);
- }
- }
- void testlines(uint16_t color) {
- tft.fillScreen(ST7735_BLACK);
- for (int16_t x = 0; x < tft.width(); x += 6) {
- tft.drawLine(0, 0, x, tft.height() - 1, color);
- }
- for (int16_t y = 0; y < tft.height(); y += 6) {
- tft.drawLine(0, 0, tft.width() - 1, y, color);
- }
- tft.fillScreen(ST7735_BLACK);
- for (int16_t x = 0; x < tft.width(); x += 6) {
- tft.drawLine(tft.width() - 1, 0, x, tft.height() - 1, color);
- }
- for (int16_t y = 0; y < tft.height(); y += 6) {
- tft.drawLine(tft.width() - 1, 0, 0, y, color);
- }
- tft.fillScreen(ST7735_BLACK);
- for (int16_t x = 0; x < tft.width(); x += 6) {
- tft.drawLine(0, tft.height() - 1, x, 0, color);
- }
- for (int16_t y = 0; y < tft.height(); y += 6) {
- tft.drawLine(0, tft.height() - 1, tft.width() - 1, y, color);
- }
- tft.fillScreen(ST7735_BLACK);
- for (int16_t x = 0; x < tft.width(); x += 6) {
- tft.drawLine(tft.width() - 1, tft.height() - 1, x, 0, color);
- }
- for (int16_t y = 0; y < tft.height(); y += 6) {
- tft.drawLine(tft.width() - 1, tft.height() - 1, 0, y, color);
- }
- }
- void testfastlines(uint16_t color1, uint16_t color2) {
- tft.fillScreen(ST7735_BLACK);
- for (int16_t y = 0; y < tft.height(); y += 5) {
- tft.drawFastHLine(0, y, tft.width(), color1);
- }
- for (int16_t x = 0; x < tft.width(); x += 5) {
- tft.drawFastVLine(x, 0, tft.height(), color2);
- }
- }
- void testdrawrects(uint16_t color) {
- tft.fillScreen(ST7735_BLACK);
- for (int16_t x = 0; x < tft.width(); x += 6) {
- tft.drawRect(tft.width() / 2 - x / 2, tft.height() / 2 - x / 2, x, x,
- color);
- }
- }
- void testfillrects(uint16_t color1, uint16_t color2) {
- tft.fillScreen(ST7735_BLACK);
- for (int16_t x = tft.width() - 1; x > 6; x -= 6) {
- tft.fillRect(tft.width() / 2 - x / 2, tft.height() / 2 - x / 2, x, x,
- color1);
- tft.drawRect(tft.width() / 2 - x / 2, tft.height() / 2 - x / 2, x, x,
- color2);
- }
- }
- void testfillcircles(uint8_t radius, uint16_t color) {
- for (int16_t x = radius; x < tft.width(); x += radius * 2) {
- for (int16_t y = radius; y < tft.height(); y += radius * 2) {
- tft.fillCircle(x, y, radius, color);
- }
- }
- }
- void testdrawcircles(uint8_t radius, uint16_t color) {
- for (int16_t x = 0; x < tft.width() + radius; x += radius * 2) {
- for (int16_t y = 0; y < tft.height() + radius; y += radius * 2) {
- tft.drawCircle(x, y, radius, color);
- }
- }
- }
- void testtriangles() {
- tft.fillScreen(ST7735_BLACK);
- int color = 0xF800;
- int t;
- int w = tft.width() / 2;
- int x = tft.height() - 1;
- int y = 0;
- int z = tft.width();
- for (t = 0; t <= 15; t += 1) {
- tft.drawTriangle(w, y, y, x, z, x, color);
- x -= 4;
- y += 4;
- z -= 4;
- color += 100;
- }
- }
- void testroundrects() {
- tft.fillScreen(ST7735_BLACK);
- int color = 100;
- int i;
- int t;
- for (t = 0; t <= 4; t += 1) {
- int x = 0;
- int y = 0;
- int w = tft.width() - 2;
- int h = tft.height() - 2;
- for (i = 0; i <= 16; i += 1) {
- tft.drawRoundRect(x, y, w, h, 5, color);
- x += 2;
- y += 3;
- w -= 4;
- h -= 6;
- color += 1100;
- }
- color += 100;
- }
- }
- void mediabuttons() {
- // play
- tft.fillScreen(ST7735_BLACK);
- tft.fillRoundRect(25, 10, 78, 60, 8, ST7735_WHITE);
- tft.fillTriangle(42, 20, 42, 60, 90, 40, ST7735_RED);
- ThisThread::sleep_for(500);
- // pause
- tft.fillRoundRect(25, 90, 78, 60, 8, ST7735_WHITE);
- tft.fillRoundRect(39, 98, 20, 45, 5, ST7735_GREEN);
- tft.fillRoundRect(69, 98, 20, 45, 5, ST7735_GREEN);
- ThisThread::sleep_for(500);
- // play color
- tft.fillTriangle(42, 20, 42, 60, 90, 40, ST7735_BLUE);
- ThisThread::sleep_for(500);
- // pause color
- tft.fillRoundRect(39, 98, 20, 45, 5, ST7735_RED);
- tft.fillRoundRect(69, 98, 20, 45, 5, ST7735_RED);
- ThisThread::sleep_for(500);
- // play color
- tft.fillTriangle(42, 20, 42, 60, 90, 40, ST7735_GREEN);
- }
- void testdrawtext(char *text, uint16_t color) {
- tft.setCursor(0, 0);
- tft.setTextColor(color);
- tft.setTextWrap(true);
- tft.printf("%s", text);
- }
- void tftPrintTest() {
- tft.setTextWrap(false);
- tft.fillScreen(ST7735_BLACK);
- tft.setCursor(0, 30);
- tft.setTextColor(ST7735_RED);
- tft.setTextSize(1);
- tft.printf("Hello World!\r\n");
- tft.setTextColor(ST7735_YELLOW);
- tft.setTextSize(2);
- tft.printf("Hello World!\r\n");
- tft.setTextColor(ST7735_GREEN);
- tft.setTextSize(3);
- tft.printf("Hello World!\r\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement