roo_display
API Documentation for roo_display
Loading...
Searching...
No Matches
tjctm24024_spi.h
Go to the documentation of this file.
1#pragma once
2
3// http://www.lcdwiki.com/2.4inch_SPI_Module_ILI9341_SKU:MSP2402
4// Maker: ???
5// SKU: MSP2402
6//
7// Note: if you want to use the built-in SD card reader, treat it as a
8// completely separate SPI device, and use the appropriate libraries (e.g.,
9// 'SD'). You can connect the SD reader to the same SPI bus as the display. You
10// then just need to ensure that its 'CS' pin is never activated (set to LOW)
11// when a display's DrawingContext exists.
12//
13// Note: this display has a backlit (LED) pin. You can connect it to VCC for
14// full brigtness. You can also connect it to some digital output pin, and use
15// the controller-specific utility (e.g. LedcBacklit on ESP32) to control the
16// intensity.
17//
18// Sample script:
19//
20// #include <Arduino.h>
21//
22// #include "roo_display.h"
23// #include "roo_display/backlit/esp32_ledc.h"
24// #include "roo_display/shape/basic.h"
25// #include "roo_display/products/noname/ili9341_red/tjctm24024_spi.h"
26//
27// using namespace roo_display;
28//
29// // Override the constants to match your configuration.
30// static const int kPinSpiSck = 18;
31// static const int kPinSpiMiso = 19;
32// static const int kPinSpiMosi = 23;
33//
34// static const int kPinLcdCs = 5;
35// static const int kPinTouchCs = 2;
36// static const int kPinLcdDc = 17;
37// static const int kPinLcdReset = 27;
38//
39// static const int kPinLcdBl = 16;
40//
41// products::noname::ili9341_red::Tjctm24024Spi<kPinLcdCs, kPinTouchCs,
42// kPinLcdDc, kPinLcdReset>
43// display_device;
44// Display display(display_device);
45//
46// LedcBacklit backlit(kPinLcdBl);
47//
48// void setup() {
49// display_device.initTransport(kPinSpiSck, kPinSpiMiso, kPinSpiMosi);
50// display.init(color::White);
51// backlit.begin();
52// }
53//
54// void loop() {
55// {
56// DrawingContext dc(display);
57// dc.fill(Color(rand(), rand(), rand()));
58// }
59// int16_t x, y;
60// if (display.getTouch(x, y)) {
61// DrawingContext dc(display);
62// dc.draw(Line(0, y, display.width() - 1, y, color::Red));
63// dc.draw(Line(x, 0, x, display.height() - 1, color::Red));
64// }
65// delay(200);
66// }
67
72#include "roo_display/hal/spi.h"
74
76
77template <int8_t pinLcdCs, int8_t pinTouchCs, int8_t pinLcdDc,
78 int8_t pinLcdReset = -1>
79/// Noname 2.4" ILI9341 SPI module (TJCTM24024).
80class Tjctm24024Spi : public ComboDevice {
81 public:
82 /// Create device with orientation and SPI instance.
83 Tjctm24024Spi(Orientation orientation = Orientation().rotateLeft(),
85 : spi_(spi), display_(spi), touch_() {
86 display_.setOrientation(orientation);
87 }
88
89#if defined(ARDUINO)
90 /// Initialize transport using default SPI pins (Arduino).
91 void initTransport() { spi_.init(); }
92#endif
93
94 /// Initialize transport using explicit SPI pins.
96 spi_.init(sck, miso, mosi);
97 }
98
99 /// Return display device.
100 DisplayDevice& display() override { return display_; }
101
102 /// Return touch device.
103 TouchDevice* touch() override { return &touch_; }
104
105 /// Return touch calibration.
107 return TouchCalibration(318, 346, 3824, 3909,
109 }
110
111 private:
115};
116
117} // namespace roo_display::products::noname::ili9341_red
Base class for displays with integrated, pre-calibrated touch.
Definition combo_device.h:9
Base class for display device drivers.
Definition device.h:223
Represents the orientation of a display device.
Definition orientation.h:25
static constexpr Orientation RightUp()
Return orientation where x increases to the right and y increases upward.
Definition orientation.h:71
Touch calibration parameters (bounds + orientation).
Definition calibration.h:10
Touch controller interface.
Definition device.h:428
Noname 2.4" ILI9341 SPI module (TJCTM24024).
TouchCalibration touch_calibration() override
Return touch calibration.
Tjctm24024Spi(Orientation orientation=Orientation().rotateLeft(), roo_display::DefaultSpi spi=roo_display::DefaultSpi())
Create device with orientation and SPI instance.
DisplayDevice & display() override
Return display device.
void initTransport(uint8_t sck, uint8_t miso, uint8_t mosi)
Initialize transport using explicit SPI pins.
TouchDevice * touch() override
Return touch device.