800*320工程文件+初始demo提交
This commit is contained in:
202
SW/components/drivers/bsp/display/driver_display.c
Normal file
202
SW/components/drivers/bsp/display/driver_display.c
Normal file
@ -0,0 +1,202 @@
|
||||
/*
|
||||
******************************************************************************
|
||||
* @file driver_display.c
|
||||
* @author FreqChip Firmware Team
|
||||
* @version V1.0.0
|
||||
* @date 2022
|
||||
* @brief display abstract interfase.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2022 FreqChip.
|
||||
* All rights reserved.
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include <stdint.h>
|
||||
#include "app_lvgl.h"
|
||||
#include "app_config.h"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#include "driver_display.h"
|
||||
|
||||
#ifdef DISPLAY_TYPE_GC9C01
|
||||
#include "driver_gc9c01.h"
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_JD9854
|
||||
#include "driver_jd9854.h"
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601A
|
||||
#include "driver_sh8601a.h"
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_ICNA3310
|
||||
#include "driver_icna3310.h"
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601Z
|
||||
#include "driver_sh8601z.h"
|
||||
#endif
|
||||
|
||||
#ifdef DISPLAY_TYPE_NV3047_RGB
|
||||
#include "driver_nv3047_rgb.h"
|
||||
#endif
|
||||
|
||||
#ifdef DISPLAY_TYPE_ST7701_RGB
|
||||
#include "driver_st7701_rgb.h"
|
||||
#endif
|
||||
|
||||
#ifdef DISPLAY_TYPE_NV3041A
|
||||
#include "driver_nv3041a.h"
|
||||
#endif
|
||||
|
||||
void display_init(void)
|
||||
{
|
||||
#ifdef DISPLAY_TYPE_GC9C01
|
||||
gc9c01_init();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_JD9854
|
||||
jd9854_init();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601A
|
||||
sh8601a_init();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_ICNA3310
|
||||
icna3310_init();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601Z
|
||||
sh8601z_init();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_NV3047_RGB
|
||||
extern void* get_display_buffer1(void);
|
||||
extern void rgb_display_controller_init(void);
|
||||
rgb_display_controller_init();
|
||||
rgb_display_init(get_display_buffer1());
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_ST7701_RGB
|
||||
extern void* get_display_buffer1(void);
|
||||
st7701_init(get_display_buffer1());
|
||||
#endif
|
||||
|
||||
#ifdef DISPLAY_TYPE_NV3041A
|
||||
nv3041a_init();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void display_set_window(uint16_t x_s, uint16_t x_e, uint16_t y_s, uint16_t y_e)
|
||||
{
|
||||
#ifdef DISPLAY_TYPE_GC9C01
|
||||
gc9c01_set_window(x_s, x_e, y_s, y_e);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_JD9854
|
||||
jd9854_set_window(x_s, x_e, y_s, y_e);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601A
|
||||
sh8601a_set_window(x_s, x_e, y_s, y_e);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_ICNA3310
|
||||
icna3310_set_window(x_s, x_e, y_s, y_e);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601Z
|
||||
sh8601z_set_window(x_s, x_e, y_s, y_e);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_NV3041A
|
||||
nv3041a_set_window(x_s, x_e, y_s, y_e);
|
||||
#endif
|
||||
}
|
||||
|
||||
void display_update(uint32_t pixel_count, uint8_t pixel_width, void *data)
|
||||
{
|
||||
#ifdef DISPLAY_TYPE_GC9C01
|
||||
gc9c01_display(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_JD9854
|
||||
jd9854_display(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601A
|
||||
sh8601a_display(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_ICNA3310
|
||||
icna3310_display(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601Z
|
||||
sh8601z_display(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_NV3041A
|
||||
nv3041a_display(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
}
|
||||
|
||||
void display_update_dma(uint32_t pixel_count, uint8_t pixel_width, void *data)
|
||||
{
|
||||
#ifdef DISPLAY_TYPE_GC9C01
|
||||
gc9c01_display_dma(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_JD9854
|
||||
jd9854_display_dma(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601A
|
||||
sh8601a_display_dma(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_ICNA3310
|
||||
icna3310_display_dma(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601Z
|
||||
sh8601z_display_dma(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_NV3047_RGB
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef DISPLAY_TYPE_ST7701_RGB
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef DISPLAY_TYPE_NV3041A
|
||||
nv3041a_display_dma(pixel_count, pixel_width, data);
|
||||
#endif
|
||||
}
|
||||
|
||||
void display_power_off(void)
|
||||
{
|
||||
#ifdef DISPLAY_TYPE_SH8601Z
|
||||
sh8601z_power_off();
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void display_power_on(void)
|
||||
{
|
||||
#ifdef DISPLAY_TYPE_SH8601Z
|
||||
sh8601z_power_on();
|
||||
#endif
|
||||
}
|
||||
|
||||
void display_update_dma_isr(void)
|
||||
{
|
||||
#ifdef DISPLAY_TYPE_GC9C01
|
||||
gc9c01_display_dma_isr();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_JD9854
|
||||
jd9854_display_dma_isr();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601A
|
||||
sh8601a_display_dma_isr();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_ICNA3310
|
||||
icna3310_display_dma_isr();
|
||||
#endif
|
||||
#ifdef DISPLAY_TYPE_SH8601Z
|
||||
sh8601z_display_dma_isr();
|
||||
#endif
|
||||
|
||||
#ifdef DISPLAY_TYPE_ST7701_RGB
|
||||
st7701_rgb_display_dma_irq();
|
||||
#endif
|
||||
|
||||
#ifdef DISPLAY_TYPE_NV3041A
|
||||
nv3041a_display_dma_isr();
|
||||
#endif
|
||||
}
|
Reference in New Issue
Block a user