W801_SDK_dev_env/demo/wm_lcd_demo.c
2023-03-08 08:23:45 +01:00

86 lines
2.3 KiB
C

/**************************************************************************//**
* @file wm_lcd.c
* @author
* @version
* @date
* @brief
*
* Copyright (c) 2014 Winner Microelectronics Co., Ltd. All rights reserved.
*****************************************************************************/
#include "wm_include.h"
#if DEMO_LCD
#include "wm_osal.h"
#include "wm_lcd.h"
#include "wm_io.h"
#include "wm_pmu.h"
/*********************************************************
Available COM and SEGMENT
COM00:PB_25 COM01:PB_21 COM02:PB_22 COM03:PB_27 COM04:PB_28 COM05:PB_29 COM06:PB_30 COM07:PB_31
SEG00:PB_23 SEG01:PB_26 SEG02:PB_24 SEG03:PA_07 SEG04:PA_08 SEG05:PA_09 SEG06:PA_10 SEG07:PA_11
SEG08:PA_12 SEG09:PA_13 SEG10:PA_14 SEG11:PA_15 SEG12:PB_00 SEG13:PB_01 SEG14:PB_02 SEG15:PB_03
SEG16:PB_04 SEG17:PB_05 SEG18:PB_06 SEG19:PB_07 SEG20:PB_08 SEG21:PB_09 SEG22:PB_10 SEG23:PB_11
SEG24:PB_12 SEG25:PB_13 SEG26:PB_14 SEG27:PB_15 SEG28:PB_16 SEG29:PB_17 SEG30:PB_18 SEG31:PA_06
********************************************************/
/*test lcd output after cfg lcd and make lcd pin output fixed state*/
void lcd_test(void)
{
int i,j;
tls_lcd_options_t lcd_opts = {
true,
BIAS_ONEFOURTH,
DUTY_ONEEIGHTH,
VLCD31,
4,
60,
};
/* COM 0-3 */
tls_io_cfg_set(WM_IO_PB_25, WM_IO_OPTION6);
tls_io_cfg_set(WM_IO_PB_21, WM_IO_OPTION6);
tls_io_cfg_set(WM_IO_PB_22, WM_IO_OPTION6);
tls_io_cfg_set(WM_IO_PB_27, WM_IO_OPTION6);
/* SEG 0-5 */
tls_io_cfg_set(WM_IO_PB_23, WM_IO_OPTION6);
tls_io_cfg_set(WM_IO_PB_26, WM_IO_OPTION6);
tls_io_cfg_set(WM_IO_PB_24, WM_IO_OPTION6);
tls_io_cfg_set(WM_IO_PA_07, WM_IO_OPTION6);
tls_io_cfg_set(WM_IO_PA_08, WM_IO_OPTION6);
tls_io_cfg_set(WM_IO_PA_09, WM_IO_OPTION6);
tls_open_peripheral_clock(TLS_PERIPHERAL_TYPE_LCD);
/*enable output valid*/
tls_reg_write32(HR_LCD_COM_EN, 0xF);
tls_reg_write32(HR_LCD_SEG_EN, 0x3F);
tls_lcd_init(&lcd_opts);
while(1)
{
for(i=0; i<4; i++)
{
for(j=0; j<6; j++)
{
tls_lcd_seg_set(i, j, 1);
tls_os_time_delay(500);
printf("%d %d %d\n", i, j, 1);
}
}
for(i=0; i<4; i++)
{
for(j=0; j<6; j++)
{
tls_lcd_seg_set(i, j, 0);
tls_os_time_delay(500);
printf("%d %d %d\n", i, j, 0);
}
}
}
}
#endif