76 lines
1.8 KiB
C
76 lines
1.8 KiB
C
#ifndef __DRV_LCD_H
|
|
#define __DRV_LCD_H
|
|
|
|
#include <stdint.h>
|
|
#include <rtdevice.h>
|
|
|
|
#include "pico/stdlib.h"
|
|
#include "hardware/spi.h"
|
|
#include "hardware/i2c.h"
|
|
#include "hardware/pwm.h"
|
|
#include "hardware/dma.h"
|
|
|
|
#define LCD_HEIGHT 240
|
|
#define LCD_WIDTH 240
|
|
|
|
#define HORIZONTAL 0
|
|
#define VERTICAL 1
|
|
|
|
/**
|
|
* data
|
|
**/
|
|
#define UBYTE uint8_t
|
|
#define UWORD uint16_t
|
|
#define UDOUBLE uint32_t
|
|
|
|
/**
|
|
* GPIOI config
|
|
**/
|
|
#define LCD_RST_PIN 12
|
|
#define LCD_DC_PIN 8
|
|
#define LCD_BL_PIN 13
|
|
|
|
#define LCD_CS_PIN 9
|
|
#define LCD_CLK_PIN 10
|
|
#define LCD_MOSI_PIN 11
|
|
|
|
typedef struct
|
|
{
|
|
UWORD WIDTH;UWORD HEIGHT;UBYTE SCAN_DIR;
|
|
} LCD_ATTRIBUTES;
|
|
extern LCD_ATTRIBUTES LCD;
|
|
|
|
/*------------------------------------------------------------------------------------------------------*/
|
|
void DEV_Digital_Write(UWORD Pin, UBYTE Value);
|
|
UBYTE DEV_Digital_Read(UWORD Pin);
|
|
|
|
void DEV_GPIO_Mode(UWORD Pin, UWORD Mode);
|
|
void DEV_KEY_Config(UWORD Pin);
|
|
void DEV_Digital_Write(UWORD Pin, UBYTE Value);
|
|
UBYTE DEV_Digital_Read(UWORD Pin);
|
|
|
|
void DEV_SPI_WriteByte(UBYTE Value);
|
|
void DEV_SPI_Write_nByte(UBYTE *pData, UDOUBLE Len);
|
|
|
|
void DEV_SET_PWM(UBYTE Value);
|
|
|
|
UBYTE SPI_Init(void);
|
|
UBYTE DEV_Module_Init(void);
|
|
void DEV_Module_Exit(void);
|
|
|
|
/********************************************************************************
|
|
function:
|
|
Macro definition variable name
|
|
********************************************************************************/
|
|
bool initDMA(bool ctrl_cs);
|
|
void LCD_Init(UBYTE Scan_dir);
|
|
void LCD_Clear(UWORD Color);
|
|
void LCD_Display(UWORD *Image);
|
|
void LCD_SetWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend);
|
|
void LCD_DisplayWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD *Image);
|
|
void pushPixelsDMA(UWORD* image, UDOUBLE len);
|
|
void LCD_DisplayPoint(UWORD X, UWORD Y, UWORD Color);
|
|
void Handler_LCD(int signo);
|
|
|
|
#endif
|