Testanto funções Display

Dependencies:   mbed

Committer:
silviosz
Date:
Wed Apr 21 14:47:37 2021 +0000
Revision:
0:d4d4998d71d5
Child:
1:a5ccd53612ea
ILI9341 display controller test; parallel connection (Arduino shield); NUCLEO-F103RB tested (2021-04-19) = success!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
silviosz 0:d4d4998d71d5 1 // link:
silviosz 0:d4d4998d71d5 2 // https://os.mbed.com/users/davidprentice/code/Nucleo_dir_L152//file/d88d2ad55fac/main.cpp/
silviosz 0:d4d4998d71d5 3 // Committer: davidprentice
silviosz 0:d4d4998d71d5 4 // Date: 19 months ago
silviosz 0:d4d4998d71d5 5 // 2021-04-21
silviosz 0:d4d4998d71d5 6
silviosz 0:d4d4998d71d5 7 #include "Arduino.h"
silviosz 0:d4d4998d71d5 8
silviosz 0:d4d4998d71d5 9 #include <MCUFRIEND_kbv.h>
silviosz 0:d4d4998d71d5 10 MCUFRIEND_kbv tft;
silviosz 0:d4d4998d71d5 11
silviosz 0:d4d4998d71d5 12 Serial pc(SERIAL_TX, SERIAL_RX);
silviosz 0:d4d4998d71d5 13
silviosz 0:d4d4998d71d5 14 // Assign human-readable names to some common 16-bit color values:
silviosz 0:d4d4998d71d5 15 #define BLACK 0x0000
silviosz 0:d4d4998d71d5 16 #define BLUE 0x001F
silviosz 0:d4d4998d71d5 17 #define RED 0xF800
silviosz 0:d4d4998d71d5 18 #define GREEN 0x07E0
silviosz 0:d4d4998d71d5 19 #define CYAN 0x07FF
silviosz 0:d4d4998d71d5 20 #define MAGENTA 0xF81F
silviosz 0:d4d4998d71d5 21 #define YELLOW 0xFFE0
silviosz 0:d4d4998d71d5 22 #define WHITE 0xFFFF
silviosz 0:d4d4998d71d5 23 #define GRAY 0x8410
silviosz 0:d4d4998d71d5 24
silviosz 0:d4d4998d71d5 25 uint16_t version = MCUFRIEND_KBV_H_;
silviosz 0:d4d4998d71d5 26
silviosz 0:d4d4998d71d5 27 void setup()
silviosz 0:d4d4998d71d5 28 {
silviosz 0:d4d4998d71d5 29 uint16_t ID = tft.readID(); //
silviosz 0:d4d4998d71d5 30 pc.printf("\nI have run this on a NUCLEO-F072\n");
silviosz 0:d4d4998d71d5 31 pc.printf("Please run it on your NUCLEO-L152\n");
silviosz 0:d4d4998d71d5 32 pc.printf("Found ID = 0x%04X\n", ID);
silviosz 0:d4d4998d71d5 33 tft.begin(ID);
silviosz 0:d4d4998d71d5 34 }
silviosz 0:d4d4998d71d5 35
silviosz 0:d4d4998d71d5 36 void loop()
silviosz 0:d4d4998d71d5 37 {
silviosz 0:d4d4998d71d5 38 static uint8_t aspect = 0;
silviosz 0:d4d4998d71d5 39 const char *aspectname[] = {
silviosz 0:d4d4998d71d5 40 "PORTRAIT", "LANDSCAPE", "PORTRAIT_REV", "LANDSCAPE_REV"
silviosz 0:d4d4998d71d5 41 };
silviosz 0:d4d4998d71d5 42 const char *colorname[] = { "BLUE", "GREEN", "RED", "GRAY" };
silviosz 0:d4d4998d71d5 43 uint16_t colormask[] = { BLUE, GREEN, RED, GRAY };
silviosz 0:d4d4998d71d5 44 uint16_t ID = tft.readID(); //
silviosz 0:d4d4998d71d5 45 tft.setRotation(aspect);
silviosz 0:d4d4998d71d5 46 int width = tft.width();
silviosz 0:d4d4998d71d5 47 int height = tft.height();
silviosz 0:d4d4998d71d5 48 tft.fillScreen(colormask[aspect]);
silviosz 0:d4d4998d71d5 49 tft.drawRect(0, 0, width, height, WHITE);
silviosz 0:d4d4998d71d5 50 tft.drawRect(32, 32, width - 64, height - 64, WHITE);
silviosz 0:d4d4998d71d5 51 tft.setTextSize(2);
silviosz 0:d4d4998d71d5 52 tft.setTextColor(BLACK);
silviosz 0:d4d4998d71d5 53 tft.setCursor(40, 40);
silviosz 0:d4d4998d71d5 54 tft.print("ID=0x");
silviosz 0:d4d4998d71d5 55 tft.println(ID, HEX);
silviosz 0:d4d4998d71d5 56 if (ID == 0xD3D3) tft.print(" w/o");
silviosz 0:d4d4998d71d5 57 tft.setCursor(40, 70);
silviosz 0:d4d4998d71d5 58 tft.print(aspectname[aspect]);
silviosz 0:d4d4998d71d5 59 tft.setCursor(40, 100);
silviosz 0:d4d4998d71d5 60 tft.print(width);
silviosz 0:d4d4998d71d5 61 tft.print(" x ");
silviosz 0:d4d4998d71d5 62 tft.print(height);
silviosz 0:d4d4998d71d5 63 tft.setTextColor(WHITE);
silviosz 0:d4d4998d71d5 64 tft.setCursor(40, 130);
silviosz 0:d4d4998d71d5 65 tft.print(colorname[aspect]);
silviosz 0:d4d4998d71d5 66 tft.setCursor(40, 160);
silviosz 0:d4d4998d71d5 67 tft.setTextSize(1);
silviosz 0:d4d4998d71d5 68 tft.print("MCUFRIEND_KBV_H_ = ");
silviosz 0:d4d4998d71d5 69 tft.print(version);
silviosz 0:d4d4998d71d5 70 if (++aspect > 3) aspect = 0;
silviosz 0:d4d4998d71d5 71 delay(5000);
silviosz 0:d4d4998d71d5 72 }
silviosz 0:d4d4998d71d5 73
silviosz 0:d4d4998d71d5 74 uint32_t millis(void)
silviosz 0:d4d4998d71d5 75 {
silviosz 0:d4d4998d71d5 76 static Timer t;
silviosz 0:d4d4998d71d5 77 static int first = 1;
silviosz 0:d4d4998d71d5 78 if (first) first = 0, t.start();
silviosz 0:d4d4998d71d5 79 return t.read_ms();
silviosz 0:d4d4998d71d5 80 }
silviosz 0:d4d4998d71d5 81
silviosz 0:d4d4998d71d5 82 uint32_t micros(void)
silviosz 0:d4d4998d71d5 83 {
silviosz 0:d4d4998d71d5 84 static Timer t;
silviosz 0:d4d4998d71d5 85 static int first = 1;
silviosz 0:d4d4998d71d5 86 if (first) first = 0, t.start();
silviosz 0:d4d4998d71d5 87 return t.read_us();
silviosz 0:d4d4998d71d5 88 }
silviosz 0:d4d4998d71d5 89
silviosz 0:d4d4998d71d5 90 void main(void)
silviosz 0:d4d4998d71d5 91 {
silviosz 0:d4d4998d71d5 92 setup();
silviosz 0:d4d4998d71d5 93 while (1) {
silviosz 0:d4d4998d71d5 94 loop();
silviosz 0:d4d4998d71d5 95 }
silviosz 0:d4d4998d71d5 96 }