AC695N-SoundBox-SDK/apps/soundbox/include/ui/lcd_seg/lcd_seg3x9_driver.h
2026-08-09 00:00:00 +00:00

135 lines
5.6 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _LCD_SEG3X9_DRV_H_
#define _LCD_SEG3X9_DRV_H_
typedef struct _lcd_seg3x9_var {
u8 bCoordinateX;
u8 bFlashChar;
u8 bShowBuff[4]; //[0] ~ [3]显示的数字/字母显示的所有段
u32 bShowIcon; //每1bit对应LED4的1段, maybe icon > 7段
u32 bFlashIcon; //闪烁标志
} LCD_SEG3X9_VAR;
#define LCD_SEG3X9_USB BIT(0) //0: USB图标
#define LCD_SEG3X9_SD BIT(1) //1: SD图标
#define LCD_SEG3X9_VOL BIT(2) //2: SD图标
#define LCD_SEG3X9_MHZ BIT(3) //3: FM图标
#define LCD_SEG3X9_DIGIT1 BIT(4) //4: 数字1
#define LCD_SEG3X9_2POINT BIT(5) //5: 冒号
#define LCD_SEG3X9_DOT BIT(6) //6: 点
typedef u32 UI_LCD_SEG3X9_ICON;
struct lcd_seg3x9_pin {
u8 pin_com[3];
u8 pin_seg[9];
};
enum LCD_SEG3X9_BIAS {
LCD_SEG3X9_BIAS_OFF = 0,
LCD_SEG3X9_BIAS_1_2, // 1/2 bias
LCD_SEG3X9_BIAS_1_3, // 1/3 bias
LCD_SEG3X9_BIAS_1_4, // 1/4 bias
};
enum LCD_SEG3X9_COM_NUMBER {
LCD_SEG3X9_COM_NUMBER_3 = 0,
LCD_SEG3X9_COM_NUMBER_4,
LCD_SEG3X9_COM_NUMBER_5,
LCD_SEG3X9_COM_NUMBER_6,
};
enum LCD_SEG3X9_VOLTAGE {
LCD_SEG3X9_VOLTAGE_2_6V = 0, //000b
LCD_SEG3X9_VOLTAGE_2_7V, //001b
LCD_SEG3X9_VOLTAGE_2_8V, //010b
LCD_SEG3X9_VOLTAGE_2_9V, //011b
LCD_SEG3X9_VOLTAGE_3_0V, //100b
LCD_SEG3X9_VOLTAGE_3_1V, //101b
LCD_SEG3X9_VOLTAGE_3_2V, //110b
LCD_SEG3X9_VOLTAGE_3_3V, //111b
};
struct lcd_seg3x9_platform_data {
enum LCD_SEG3X9_VOLTAGE vlcd;
enum LCD_SEG3X9_BIAS bias;
struct lcd_seg3x9_pin pin_cfg;
};
//=================================================================================//
// 关于LCD段码屏接线问题 //
// 1.COM口需要从COM0按顺序开始连接, 如3COM, 则IO必须占用COM0/1/2而不能COM1/2/3;
// 2.COM0/1/2与LCD屏可以不按照对应需要接线, 如:
// LCD_COM0 --> CHIP_COM2;
// LCD_COM1 --> CHIP_COM1;
// LCD_COM2 --> CHIP_COM0;
// 但一般建议按顺序接线;
// 2.SEG可以根据实际情况选择SEG0~SEG21接线, 如;
// LCD_SEG0 --> CHIP_SEG7;
// LCD_SEG1 --> CHIP_SEG8;
// LCD_SEG2 --> CHIP_SEG9;
//=================================================================================//
#define LCD_SEG3X9_PLATFORM_DATA_BEGIN(data) \
const struct lcd_seg3x9_platform_data data = {
#define LCD_SEG3X9_PLATFORM_DATA_END() \
};
//UI LED7 API:
//=================================================================================//
// 模块初始化显示接口 //
//=================================================================================//
void lcd_seg3x9_init(const struct lcd_seg3x9_platform_data *_data);
const struct ui_display_api *ui_lcd_seg3x9_init(void *para);
//=================================================================================//
// 设置显示坐标接口 //
/*
___ ___ ___
|___| |___| |___|
|___| |___| |___|
---0------1------2----> X
*/
//=================================================================================//
void lcd_seg3x9_setX(u8 X);
//=================================================================================//
// 字符类显示接口 //
//=================================================================================//
void lcd_seg3x9_show_char(u8 chardata); //显示字符(追加方式)
void lcd_seg3x9_flash_char_start(u8 index); //闪烁单个字符
void lcd_seg3x9_flash_char_stop(u8 index); //取消闪烁单个字符
void lcd_seg3x9_show_string(u8 *str); //显示字符串(追加方式)
void lcd_seg3x9_show_string_reset_x(u8 *str); //显示字符串, x从0开始
void lcd_seg3x9_show_string_align_right(u8 *str); //led7显示字符串(清屏&右方式)
void lcd_seg3x9_show_string_align_left(u8 *str); //led7显示字符串(清屏&左方式)
//=================================================================================//
// 数字类显示接口 //
//=================================================================================//
void lcd_seg3x9_show_number(u16 val); //显示数字(清屏&高位显示0)
void lcd_seg3x9_show_number2(u16 val); //显示数字(清屏&高位不显示)
void lcd_seg3x9_show_number_add(u16 val); //显示数字(追加方式)
//=================================================================================//
// 图标类显示接口 //
//=================================================================================//
void lcd_seg3x9_show_icon(UI_LCD_SEG3X9_ICON icon); //显示单个图标(追加)
void lcd_seg3x9_flash_icon(UI_LCD_SEG3X9_ICON icon); //闪烁单个图标(追加)
//=================================================================================//
// 模式类类显示接口 //
//=================================================================================//
//=================================================================================//
// 清屏类显示接口 //
//=================================================================================//
void lcd_seg3x9_show_null(void); //清除所有显示(数字,字符串和图标)
void lcd_seg3x9_clear_string(void); //清除显示数字和字母
void lcd_seg3x9_clear_icon(UI_LCD_SEG3X9_ICON icon); //清除显示单个图标
void lcd_seg3x9_clear_all_icon(void); //清除显示所有图标
#endif /* #ifndef _LCD_SEG3X9_DRV_H_ */