Escrevendo um sinal analógico ( Seno e Cosseno) no display TFT

Dependencies:   mbed

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