drv_lcd.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifndef __DRV_LCD_H
  2. #define __DRV_LCD_H
  3. #include <stdint.h>
  4. #include <rtdevice.h>
  5. #include "pico/stdlib.h"
  6. #include "hardware/spi.h"
  7. #include "hardware/i2c.h"
  8. #include "hardware/pwm.h"
  9. #include "hardware/dma.h"
  10. #define LCD_HEIGHT 240
  11. #define LCD_WIDTH 240
  12. #define HORIZONTAL 0
  13. #define VERTICAL 1
  14. /**
  15. * data
  16. **/
  17. #define UBYTE uint8_t
  18. #define UWORD uint16_t
  19. #define UDOUBLE uint32_t
  20. /**
  21. * GPIOI config
  22. **/
  23. #define LCD_RST_PIN 12
  24. #define LCD_DC_PIN 8
  25. #define LCD_BL_PIN 13
  26. #define LCD_CS_PIN 9
  27. #define LCD_CLK_PIN 10
  28. #define LCD_MOSI_PIN 11
  29. typedef struct
  30. {
  31. UWORD WIDTH;UWORD HEIGHT;UBYTE SCAN_DIR;
  32. } LCD_ATTRIBUTES;
  33. extern LCD_ATTRIBUTES LCD;
  34. /*------------------------------------------------------------------------------------------------------*/
  35. void DEV_Digital_Write(UWORD Pin, UBYTE Value);
  36. UBYTE DEV_Digital_Read(UWORD Pin);
  37. void DEV_GPIO_Mode(UWORD Pin, UWORD Mode);
  38. void DEV_KEY_Config(UWORD Pin);
  39. void DEV_Digital_Write(UWORD Pin, UBYTE Value);
  40. UBYTE DEV_Digital_Read(UWORD Pin);
  41. void DEV_SPI_WriteByte(UBYTE Value);
  42. void DEV_SPI_Write_nByte(UBYTE *pData, UDOUBLE Len);
  43. void DEV_SET_PWM(UBYTE Value);
  44. UBYTE SPI_Init(void);
  45. UBYTE DEV_Module_Init(void);
  46. void DEV_Module_Exit(void);
  47. /********************************************************************************
  48. function:
  49. Macro definition variable name
  50. ********************************************************************************/
  51. bool initDMA(bool ctrl_cs);
  52. void LCD_Init(UBYTE Scan_dir);
  53. void LCD_Clear(UWORD Color);
  54. void LCD_Display(UWORD *Image);
  55. void LCD_SetWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend);
  56. void LCD_DisplayWindows(UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, UWORD *Image);
  57. void pushPixelsDMA(UWORD* image, UDOUBLE len);
  58. void LCD_DisplayPoint(UWORD X, UWORD Y, UWORD Color);
  59. void Handler_LCD(int signo);
  60. #endif