KT24-1110_65E-HA-651B/cpu/br25/ui_driver/LED_1888/LED1888.c

933 lines
24 KiB
C
Raw Permalink Normal View History

2024-11-10 10:44:17 +00:00
#include "includes.h"
#include "app_config.h"
#if TCFG_UI_LED1888_ENABLE
#include "ui/ui_api.h"
#include "LED1888.h"
LED1888_VAR LED1888_var;
typedef struct _LED_DISP_ {
u8 on;
u8 phase;
u16 H_time;
u16 L_time;
u16 count;
} LED_DISP;
struct ui_led7_env {
u8 init;
u8 sys_halfsec;
u16 count;
LED_DISP led[2];
const struct led7_platform_data *user_data;
u8 lock: 1;
};
static struct ui_led7_env _led7_env = {0};
#define __this (&_led7_env)
#define PIN1_H gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[0], 1)
#define PIN1_L gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[0], 0)
#define PIN2_H gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[1], 1)
#define PIN2_L gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[1], 0)
#define PIN3_H gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[2], 1)
#define PIN3_L gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[2], 0)
#define PIN4_H gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[3], 1)
#define PIN4_L gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[3], 0)
#define PIN5_H gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[4], 1)
#define PIN5_L gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[4], 0)
#define PIN6_H gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[5], 1)
#define PIN6_L gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[5], 0)
#define PIN7_H gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[6], 1)
#define PIN7_L gpio_direction_output(__this->user_data->pin_cfg.pin7.pin[6], 0)
//数字'0' ~ '9'显示段码表
static const u8 LED_NUMBER[10] = {
(u8)(LED_A | LED_B | LED_C | LED_D | LED_E | LED_F), //'0'
(u8)(LED_B | LED_C), //'1'
(u8)(LED_A | LED_B | LED_D | LED_E | LED_G), //'2'
(u8)(LED_A | LED_B | LED_C | LED_D | LED_G), //'3'
(u8)(LED_B | LED_C | LED_F | LED_G), //'4'
(u8)(LED_A | LED_C | LED_D | LED_F | LED_G), //'5'
(u8)(LED_A | LED_C | LED_D | LED_E | LED_F | LED_G), //'6'
(u8)(LED_A | LED_B | LED_C), //'7'
(u8)(LED_A | LED_B | LED_C | LED_D | LED_E | LED_F | LED_G), //'8'
(u8)(LED_A | LED_B | LED_C | LED_D | LED_F | LED_G), //'9'
};
//字母'A' ~ 'Z'显示段码表
static const u8 LED_LARGE_LETTER[26] = {
0x77, 0x40, 0x39, 0x3f, 0x79, ///<ABCDE
0x71, 0x40, 0x76, 0x06, 0x40, ///<FGHIJ
0x40, 0x38, 0x40, 0x37, 0x3f, ///<KLMNO
0x73, 0x40, 0x50, 0x6d, 0x78, ///<PQRST
0x3e, 0x3e, 0x40, 0x76, 0x40, ///<UVWXY
0x40 ///<Z
};
//字母'a' ~ 'z'显示段码表
static const u8 LED_SMALL_LETTER[26] = {
0x77, 0x7c, 0x58, 0x5e, 0x79, ///<abcde
0x71, 0x40, 0x40, 0x40, 0x40, ///<fghij
0x40, 0x38, 0x40, 0x54, 0x5c, ///<klmno
0x73, 0x67, 0x50, 0x40, 0x78, ///<pqrst
0x3e, 0x3e, 0x40, 0x40, 0x40, ///<uvwxy
0x40 ///<z
};
/*----------------------------------------------------------------------------*/
/**@brief LED1888显示坐标设置
@param x
@return void
@author
@note void LED5X7_setX(u8 X)
*/
/*----------------------------------------------------------------------------*/
void LED1888_setX(u8 X)
{
LED1888_var.bCoordinateX = X;
}
/*----------------------------------------------------------------------------*/
/**@brief LED1888 状态位缓存清除函数
@param void
@return void
@author
@note void LED1888_clear_icon(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_clear_icon(void)
{
// my_memset((u8 *)&LED1888_var, 0x0, sizeof(LED1888_VAR));
// LED1888_var.bCoordinateX = 1;
}
/*----------------------------------------------------------------------------*/
/**@brief LED1888 状态位缓存清除函数
@param void
@return void
@author
@note void LED1888_clear_icon(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_clear(void)
{
memset((u8 *)&LED1888_var, 0x0, sizeof(LED1888_VAR));
__this->sys_halfsec = 0;
__this->count = 0;//;
LED1888_var.bCoordinateX = 0;
}
/*----------------------------------------------------------------------------*/
/**@brief LED1888 初始化函数
@param void
@return void
@author Change.tsai
@note void LED1888_init(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_init(void)
{
u8 port = (u8) - 1;
u8 i = 0;
if (__this->user_data->pin_type == LED7_PIN7) {
for (i = 0; i < 7; i++) {
port = __this->user_data->pin_cfg.pin7.pin[i];
if (port != 255) {
gpio_set_pull_down(port, 0);
gpio_set_pull_up(port, 0);
gpio_set_direction(port, 1);
}
}
}
}
/*----------------------------------------------------------------------------*/
/**@brief LED1888 单个字符显示函数
@param chardata
@return void
@author Change.tsai
@note void LED1888_show_char(u8 chardata)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_char(u8 chardata)
{
//必须保证传入的参数符合范围,程序不作判断
// printf("bCoordinateX = %d\n",LED1888_var.bCoordinateX);
if ((chardata < ' ') || (chardata > '~') || (LED1888_var.bCoordinateX > 4)) {
return;
}
// printf("bCoordinateX = %d\n",LED1888_var.bCoordinateX);
if ((chardata >= '0') && (chardata <= '9')) {
LED1888_var.bShowBuff[LED1888_var.bCoordinateX++] = LED_NUMBER[chardata - '0'];
} else if ((chardata >= 'a') && (chardata <= 'z')) {
LED1888_var.bShowBuff[LED1888_var.bCoordinateX++] = LED_SMALL_LETTER[chardata - 'a'];
} else if ((chardata >= 'A') && (chardata <= 'Z')) {
LED1888_var.bShowBuff[LED1888_var.bCoordinateX++] = LED_LARGE_LETTER[chardata - 'A'];
} else if (chardata == '.') {
LED1888_var.bShowBuff[2] |= BIT(7);
} else if (chardata == ' ') {
LED1888_var.bShowBuff[LED1888_var.bCoordinateX++] = 0;
} else { //if (chardata == '-') //不可显示
LED1888_var.bShowBuff[LED1888_var.bCoordinateX++] = BIT(6);
}
}
/*----------------------------------------------------------------------------*/
/**@brief LCD_SEG 字符闪烁函数
@param void
@return void
@author Change.tsai
@note void LCD_SEG_FlashChar(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_FlashChar(void)
{
// LED1888_var.seg_icon |= ICON_S1;
LED1888_var.bFlashChar |= BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4);
// printf("LED1888_var.bFlashChar = %d\n",LED1888_var.bFlashChar);
}
void LED1888_Clear_FlashChar(void)
{
// LED1888_var.seg_icon &= ~ICON_S1;
LED1888_var.bFlashChar &= ~(BIT(0) | BIT(1) | BIT(2) | BIT(3) | BIT(4));
// printf("LED1888_var.bFlashChar = %d\n",LED1888_var.bFlashChar);
}
/*----------------------------------------------------------------------------*/
/**@brief LCD_SEG 单个字符显示函数
@param chardata
@return void
@author Change.tsai
@note void LCD_SEG4X8_show_number(u8 number)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_number(u8 number)
{
LED1888_show_char(number + '0');
}
/*----------------------------------------------------------------------------*/
/**@brief LED5X7 字符串显示函数
@param *str offset
@return void
@author Change.tsai
@note void LED5X7_show_string(u8 *str)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_string(u8 *str)
{
while (0 != *str) {
LED1888_show_char(*str++);
}
}
void LED1888_show_filenumber(u16 file_num)
{
LED1888_setX(0);
u8 bcd_number[5] = {0}; ///<换算结果显示缓存
itoa4(file_num, (u8 *)bcd_number);
if (file_num > 999 && file_num <= 1999) {
bcd_number[0] = '1';
} else {
bcd_number[0] = ' ';
}
LED1888_show_string((u8 *)bcd_number);
}
/*----------------------------------------------------------------------------*/
/**@brief POWER_ON 显示主界面
@param void
@return void
@author Change.tsai
@note void LED1888_show_aux_main(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_power_on(void)
{
LED1888_show_string((u8 *)"E");
}
/*----------------------------------------------------------------------------*/
/**@brief LED1888 开机显示界面Hi
@param *str
@return void
@author Change.tsai
@note void LED1888_show_Hi(u8 *str)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_Hi(void)
{
LED1888_show_string((u8 *)" HI");
}
/*----------------------------------------------------------------------------*/
/** @brief:
@param:
@return:
@author:
@note:
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_waiting(void)
{
LED1888_show_string((u8 *)" Lod");
}
/*----------------------------------------------------------------------------*/
/** @brief:
@param:
@return:
@author:
@note:
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_pause(void)
{
LED1888_show_string((u8 *)" PAU");
}
/*----------------------------------------------------------------------------*/
/**@brief Music模式 设备显示
@param void
@return void
@author Change.tsai
@note void LED1888_show_dev(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_dev(void)
{
}
/*----------------------------------------------------------------------------*/
/**@brief 音量显示函数
@param void
@return void
@author Change.tsai
@note void LCD_SEG3X9_show_volume(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_volume(u8 vol)
{
LED1888_clear_icon();
LED1888_show_char(' ');
LED1888_show_char('V');
LED1888_show_number(vol / 10);
LED1888_show_number(vol % 10);
}
/*----------------------------------------------------------------------------*/
/**@brief 频率显示
@param void
@return void
@author Change.tsai
@note void LCD_SEG_show_freq(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_freq(u16 freq)
{
/*FM - Frequency*/
u8 bcd_number[5] = {0}; ///<换算结果显示缓存
itoa4(freq, bcd_number);
if (freq > 999) {
bcd_number[0] = '1';
} else {
bcd_number[0] = ' ';
}
LED1888_show_string((u8 *)bcd_number);
LED1888_var.bShowBuff[2] |= BIT(7);//小数点
// if(!strcmp(curr_task->name,"MusicTask") )
// {
// puts("\n-----show SD icon--------\n");
// LED1888_show_dev();
// }
//
// if (freq <= 999)
// {
// LCD_STATUS_3X9 &= ~ICON_S1;
// }
// else
// {
// LCD_STATUS_3X9 |= ICON_S1;
// }
//
// LCD_STATUS_3X9 |= ICON_MHZ;
}
/*----------------------------------------------------------------------------*/
/**@brief 频率显示
@param void
@return void
@author Change.tsai
@note void LCD_SEG_show_freq_setting(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_freq_setting(u16 freq)
{
LED1888_var.bFlashChar = 0x1f;
LED1888_show_freq(freq);
}
/*----------------------------------------------------------------------------*/
/**@brief 红外输入文件号显示函数
@param void
@return void
@author Change.tsai
@note void LCD_SEG3X9_show_IR_number(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_IR_number(u16 ir_num)
{
/*IR File Number info*/
// LCD_STATUS_3X9 = 0;
u8 bcd_number[5] = {0}; ///<换算结果显示缓存
itoa4(ir_num, bcd_number);
if (ir_num > 999) {
bcd_number[0] = '1';
} else {
bcd_number[0] = ' ';
}
LED1888_show_string((u8 *)bcd_number);
}
/*----------------------------------------------------------------------------*/
/**@brief EQ显示函数
@param void
@return void
@author Change.tsai
@note void LCD_SEG3X9_show_eq(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_eq(u8 eq)
{
#if 1
LED1888_setX(0);
LED1888_show_string((u8 *)" Eq");
LED1888_show_number(eq % 10);
// LCD_SEG3X9_show_dev();
#endif
}
/*----------------------------------------------------------------------------*/
/**@brief 循环模式显示函数
@param void
@return void
@author Change.tsai
@note void LCD_SEG3X9_show_playmode(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_playmode(u8 play_mode)
{
//printf("\n------play_mode == %d\n",play_mode);
// LCD_STATUS_3X9 = 0;
LED1888_setX(0);
/* LED1888_show_string((u8 *)&playmodestr[play_mode-FOP_MAX-1][0]); */
}
/*----------------------------------------------------------------------------*/
/**@brief bt 显示空闲
@param void
@return void
@author Change.tsai
@note void LED1888_show_bt_idle(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_bt_idle(void)
{
LED1888_show_string((u8 *)" H ");
}
/*----------------------------------------------------------------------------*/
/**@brief bt 显示通话
@param void
@return void
@author Change.tsai
@note void LCD_SEG_show_bt_call(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_bt_call(void)
{
LED1888_show_string((u8 *)" CAL");
}
/*----------------------------------------------------------------------------*/
/**@brief bt 显示主界面
@param void
@return void
@author Change.tsai
@note void LCD_SEG_show_bt_main(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_bt_main(void)
{
LED1888_show_string((u8 *)" bt");
}
/*----------------------------------------------------------------------------*/
/**@brief Music模式 显示界面
@param void
@return void
@author Change.tsai
@note void LED1888_show_music_main(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_music_main(void)
{
}
/*----------------------------------------------------------------------------*/
/**@brief FM 模式主界面
@param void
@return void
@author Change.tsai
@note void LED1888_show_fm_main(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_fm_main(void)
{
}
/*----------------------------------------------------------------------------*/
/**@brief AUX 显示主界面
@param void
@return void
@author Change.tsai
@note void LED1888_show_aux_main(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_show_aux_main(void)
{
LED1888_show_string((u8 *)" AUX");
}
void LED1888_show_pc_main(void)
{
#if 0
LED1888_show_string((u8 *)menu_string[2]);
#endif
}
void LED1888_show_pc_vol_up(void)
{
#if 0
LED1888_show_string((u8 *)menu_string[3]);
#endif
}
void LED1888_show_pc_vol_down(void)
{
#if 0
LED1888_show_string((u8 *)menu_string[4]);
#endif
}
void LED1888_show_led0(u32 arg)
{
if (arg & BIT(31)) {
__this->led[0].on = 1;
__this->led[0].phase = !!(arg & BIT(30));
__this->led[0].H_time = (arg >> 15) & 0x7fff;
__this->led[0].L_time = (arg) & 0x7fff;
__this->led[0].count = 0;//__this->led[0].H_time;
} else {
__this->led[0].on = 0;
__this->led[0].phase = 0;//!!arg&BIT(15);
__this->led[0].H_time = 0;//(arg >> 16)&0x7fff;
__this->led[0].L_time = 0;//(arg)&0xffff;
__this->led[0].count = 0;//__this->led[0].H_time;
}
}
void LED1888_show_led1(u32 arg)
{
if (arg & BIT(31)) {
__this->led[1].on = 1;
__this->led[1].phase = !!(arg & BIT(30));
__this->led[1].H_time = (arg >> 15) & 0x7fff;
__this->led[1].L_time = (arg) & 0x7fff;
__this->led[1].count = 0;//__this->led[1].H_time;
} else {
__this->led[1].on = 0;
__this->led[1].phase = 0;//!!arg&BIT(15);
__this->led[1].H_time = 0;//(arg >> 16)&0x7fff;
__this->led[1].L_time = 0;//(arg)&0xffff;
__this->led[1].count = 0;//__this->led[1].H_time;
}
}
/*----------------------------------------------------------------------------*/
/**@brief LED1888 扫描函数
@param void
@return void
@author
@note void LED1888_6p_scan(void)
*/
/*----------------------------------------------------------------------------*/
void LED1888_6p_scan(void)
{
static u8 cnt = 0;
u8 j;
static u8 bufdat[5];
u8 flash = LED1888_var.bFlashChar;
if (!cnt && !__this->lock) {
bufdat[0] = LED1888_var.bShowBuff[0];
bufdat[1] = LED1888_var.bShowBuff[1];
bufdat[2] = LED1888_var.bShowBuff[2];
bufdat[3] = LED1888_var.bShowBuff[3];
}
__this->count++;
if (__this->count >= 256) {
__this->sys_halfsec = !__this->sys_halfsec;
__this->count = 0;
}
if (__this->led[0].on) {
if (__this->led[0].phase) {
__this->led[0].count++;
if (__this->led[0].count >= __this->led[0].H_time + __this->led[0].L_time) {
__this->led[0].count = 0;
}
} else {
__this->led[0].count = (__this->led[0].count == 0) ? (__this->led[0].H_time + __this->led[0].L_time) : (--__this->led[0].count);
}
}
if (__this->led[1].on) {
if (__this->led[1].phase) {
__this->led[1].count++;
if (__this->led[1].count >= __this->led[1].H_time + __this->led[1].L_time) {
__this->led[1].count = 0;
}
} else {
__this->led[1].count = (__this->led[1].count == 0) ? (__this->led[1].H_time + __this->led[1].L_time) : (--__this->led[1].count);
}
}
LED1888_init();
if (__this->sys_halfsec) {
for (j = 0; j < 4; j++) {
if (flash & BIT(j)) { //数字位闪烁
// putchar('F');
bufdat[j] = 0x0;
}
}
}
switch (cnt) {
case 0:
PIN1_L;
if (bufdat[1]&LED_A) {
PIN2_H;
#ifdef UI_FADE_EN
PIN2_FADE_PU;
PIN2_FADE_PD;
#endif
}
if (bufdat[1]&LED_B) {
PIN3_H;
#ifdef UI_FADE_EN
PIN3_FADE_PU;
PIN3_FADE_PD;
#endif
}
if (bufdat[1]&LED_C) {
PIN4_H;
#ifdef UI_FADE_EN
PIN4_FADE_PU;
PIN4_FADE_PD;
#endif
}
if (bufdat[1]&LED_D) {
PIN5_H;
#ifdef UI_FADE_EN
PIN5_FADE_PU;
PIN5_FADE_PD;
#endif
}
if (bufdat[1]&LED_E) {
PIN6_H;
#ifdef UI_FADE_EN
PIN6_FADE_PU;
PIN6_FADE_PD;
#endif
}
break;
case 1:
PIN2_L;
if (bufdat[2]&LED_A) {
PIN1_H;
}
if (bufdat[1]&LED_F) {
PIN3_H;
}
if (bufdat[1]&LED_G) {
PIN4_H;
}
if (bufdat[2]&LED_F) {
PIN5_H;
}
if (bufdat[2]&LED_G) {
PIN6_H;
}
break;
case 2:
PIN3_L;
if (bufdat[2]&LED_B) {
PIN1_H;
}
if (bufdat[3]&LED_A) {
PIN2_H;
}
if (bufdat[0]&LED_B) {
PIN4_H;
}
if (bufdat[0]&LED_C) {
PIN5_H;
}
if (bufdat[2]&BIT(7)) {
PIN6_H;
};
break;
case 3:
PIN4_L;
if (bufdat[2]&LED_C) {
PIN1_H;
}
if (bufdat[3]&LED_B) {
PIN2_H;
}
if (bufdat[3]&LED_E) {
PIN3_H;
}
break;
case 4:
PIN5_L;
if (bufdat[2]&LED_D) {
PIN1_H;
}
if (bufdat[3]&LED_C) {
PIN2_H;
}
if (bufdat[3]&LED_F) {
PIN3_H;
}
if (__this->led[0].on && (__this->led[0].count <= __this->led[0].H_time)) {
PIN4_H;
}
break;
case 5:
PIN6_L;
if (bufdat[2]&LED_E) {
PIN1_H;
}
if (bufdat[3]&LED_D) {
PIN2_H;
}
if (bufdat[3]&LED_G) {
PIN3_H;
}
if (__this->led[1].on && (__this->led[1].count <= __this->led[1].H_time)) {
PIN4_H;
}
break;
default:
break;
}
cnt++;
if (cnt == 6) {
cnt = 0;
}
}
#if 0
UI_API LED1888_ui_api = {
.setX = LED1888_setX,
.clear_icon = LED1888_clear_icon,
.clear = LED1888_clear,
.show_char = LED1888_show_char,
.FlashChar = LED1888_FlashChar,
.Clear_FlashChar = LED1888_Clear_FlashChar,
.show_number = LED1888_show_number,
.show_string = LED1888_show_string,
.show_power_on = LED1888_show_power_on,
.show_Hi = LED1888_show_Hi,
.show_waiting = LED1888_show_waiting,
.show_pause = LED1888_show_pause,
.show_dev = LED1888_show_dev,
.show_filenumber = LED1888_show_filenumber,
.show_volume = LED1888_show_volume,
.show_freq = LED1888_show_freq,
.show_freq_setting = LED1888_show_freq_setting,
.show_IR_number = LED1888_show_IR_number,
.show_eq = LED1888_show_eq,
.show_playmode = LED1888_show_playmode,
.show_bt_idle = LED1888_show_bt_idle,
.show_bt_call = LED1888_show_bt_call,
.show_bt_main = LED1888_show_bt_main,
.show_music_main = LED1888_show_music_main,
.show_fm_main = LED1888_show_fm_main,
.show_aux_main = LED1888_show_aux_main,
.show_pc_main = LED1888_show_pc_main,
.show_pc_vol_up = LED1888_show_pc_vol_up,
.show_pc_vol_down = LED1888_show_pc_vol_down,
.show_led0 = LED1888_show_led0,
.show_led1 = LED1888_show_led1,
};
#endif
static void LED1888_setXY(u32 x, u32 y)
{
LED1888_setX(x);
}
static void LED1888_Flashchar(u32 arg)
{
LED1888_var.bFlashChar |= arg;//BIT(0)|BIT(1)|BIT(2)|BIT(3)|BIT(4);
}
static void LED1888_Clear_Flashchar(u32 arg)
{
LED1888_var.bFlashChar &= ~(arg); //BIT(0)|BIT(1)|BIT(2)|BIT(3)|BIT(4);
}
static void LED1888_show_icon(u32 arg)
{
switch (arg) {
case LED7_DOT:
LED1888_var.bShowBuff[2] |= BIT(7);//小数点
break;
default:
break;
}
}
static void LED1888_flash_icon(u32 arg)
{
}
static void LED1888_Clear_icon(u32 arg)
{
switch (arg) {
case LED7_DOT:
LED1888_var.bShowBuff[2] &= ~(BIT(7)); //小数点
break;
default:
break;
}
}
static void LED1888_show_pic(u32 arg)
{
}
static void LED1888_hide_pic(u32 arg)
{
}
static void LED1888_show_lock(u32 en)
{
__this->lock = !!en;
}
LCD_API LED1888_HW = {
.clear = LED1888_clear,
.setXY = LED1888_setXY,
.FlashChar = LED1888_Flashchar,
.Clear_FlashChar = LED1888_Clear_Flashchar,
.show_icon = LED1888_show_icon,
.flash_icon = LED1888_flash_icon,
.clear_icon = LED1888_Clear_icon,
.show_string = LED1888_show_string,
.show_char = LED1888_show_char,
.show_number = LED1888_show_number,
.show_pic = LED1888_show_pic,
.hide_pic = LED1888_hide_pic,
.lock = LED1888_show_lock,
};
/*----------------------------------------------------------------------------*/
/**@brief led7段数码管初始化
@param void
@return void
@author Change.tsai
@note void led7_init(void)
*/
/*----------------------------------------------------------------------------*/
void *led_1888_init(const struct led7_platform_data *_data)
{
memset(__this, 0x00, sizeof(struct ui_led7_env));
if (_data == NULL) {
return NULL;
}
memset((u8 *)&LED1888_var, 0x0, sizeof(LED1888_VAR));
__this->user_data = _data;
LED1888_init();
sys_s_hi_timer_add(NULL, LED1888_6p_scan, 2); //2ms
__this->init = true;
return &LED1888_HW;
}
#endif