/* * ILI9341.hpp * * Created on: Feb 11, 2024 * Author: Gabriel */ #ifndef SRC_COMPONENTS_ILI9341_HPP_ #define SRC_COMPONENTS_ILI9341_HPP_ #include #include #include #include "SPI_Peripheral.hpp" #include "GPIO_Pin.hpp" #include "PWM_Pin.hpp" class ILI9341 { public: ILI9341(SPI_Peripheral* hSpi, GPIO_Pin* nssPin, GPIO_Pin* hResetPin, GPIO_Pin* hDcrsPin, PWM_Pin* hLedPwm); virtual ~ILI9341(); int32_t init(); int32_t setPosition(uint16_t xPosition, uint16_t yPosition, uint16_t xSize, uint16_t ySize); int32_t write(uint8_t* buffer, uint32_t length); int32_t setBacklight(float backlight); private: int32_t readReg8(uint8_t command, uint8_t* reg); int32_t readReg24(uint8_t command, uint32_t* reg); int32_t readReg32(uint8_t command, uint32_t* reg); int32_t writeBuffer(uint8_t command, uint8_t* buffer, uint32_t length); SPI_Peripheral* hSpi; GPIO_Pin* hNssPin; GPIO_Pin* hResetPin; GPIO_Pin* hDcrsPin; PWM_Pin* hLedPwm; uint8_t txBuffer[16]; uint8_t rxBuffer[16]; }; #endif /* SRC_COMPONENTS_ILI9341_HPP_ */