HPM SDK
HPMicro Software Development Kit
EUI driver APIs

EUI driver APIs. More...

Data Structures

struct  eui_ctrl_config_t
 eui ctrl config structure More...
 
struct  eui_disp_config_t
 eui disp config structure More...
 
union  eui_scan_disp_data_t
 eui scan disp data structure More...
 

Enumerations

enum  eui_work_mode_t { eui_work_mode_8x8 = 0 , eui_work_mode_16x4 }
 eui work mode selection More...
 
enum  eui_disp_ctrl_idx_t { eui_disp_ctrl_idx_ab = 0 , eui_disp_ctrl_idx_cd , eui_disp_ctrl_idx_ef , eui_disp_ctrl_idx_gh }
 eui disp control index More...
 
enum  eui_b_disp_format_t { eui_b_disp_b = 0 , eui_b_disp_a_and_b , eui_b_disp_a_or_b , eui_b_disp_a_xor_b }
 eui b disp date format More...
 
enum  eui_disp_data_idx_t {
  eui_disp_data_idx_a = 0 , eui_disp_data_idx_b , eui_disp_data_idx_c , eui_disp_data_idx_d ,
  eui_disp_data_idx_e , eui_disp_data_idx_f , eui_disp_data_idx_g , eui_disp_data_idx_h
}
 eui disp data index More...
 
enum  eui_time_id_t {
  eui_clko_time = 0 , eui_slot_time , eui_hold_time , eui_disp_time ,
  eui_filter_time
}
 eui time id More...
 
enum  eui_irq_mask_t { eui_irq_area_mask = EUI_IRQ_EN_IRQ_AREA_EN_MASK , eui_irq_single_mask = EUI_IRQ_EN_IRQ_SINGLE_EN_MASK }
 irq mask More...
 
enum  eui_dedicate_output_lines_t {
  eui_dedicate_output_0_line = 0 , eui_dedicate_output_1_line , eui_dedicate_output_2_lines , eui_dedicate_output_3_lines ,
  eui_dedicate_output_4_lines , eui_dedicate_output_5_lines , eui_dedicate_output_6_lines , eui_dedicate_output_24_lines
}
 Number of dedicated output lines. More...
 

Functions

static void eui_set_enable (EUI_Type *eui, bool enable)
 set enable More...
 
static void eui_set_work_mode (EUI_Type *eui, eui_work_mode_t mode)
 set work mode More...
 
static eui_work_mode_t eui_get_work_mode (EUI_Type *eui)
 get work mode More...
 
static void eui_clear_output_data (EUI_Type *eui)
 clear output data More...
 
static void eui_clear_intput_data (EUI_Type *eui)
 clear input data More...
 
static void eui_set_data_polarity (EUI_Type *eui, uint16_t disp_data_invert, uint8_t scan_invert)
 set data polarity and scan polarity More...
 
static void eui_set_dedicate_disp_data (EUI_Type *eui, uint32_t data)
 set dedicate disp data More...
 
static uint16_t eui_get_dedicate_input_data (EUI_Type *eui)
 get dedicate input data More...
 
static void eui_set_irq_enable (EUI_Type *eui, uint32_t mask)
 set irq enable More...
 
static void eui_set_irq_disable (EUI_Type *eui, uint32_t mask)
 set irq disable More...
 
static uint32_t eui_get_irq_enable_status (EUI_Type *eui)
 get irq enable status More...
 
static uint32_t eui_get_irq_status (EUI_Type *eui)
 get irq status More...
 
static void eui_clear_irq_flag (EUI_Type *eui, uint32_t mask)
 clear irq flag More...
 
void eui_get_default_ctrl_config (EUI_Type *eui, eui_ctrl_config_t *config)
 get default control config structure More...
 
void eui_config_ctrl (EUI_Type *eui, uint32_t eui_clk_freq, eui_ctrl_config_t *config)
 config control structure More...
 
void eui_config_disp (EUI_Type *eui, uint32_t eui_clk_freq, eui_disp_ctrl_idx_t idx, eui_disp_config_t *config)
 config disp structure More...
 
void eui_set_scan_disp_data (EUI_Type *eui, eui_disp_data_idx_t idx, eui_scan_disp_data_t *data)
 set eui scan disp data More...
 
void eui_get_scan_disp_data (EUI_Type *eui, eui_disp_data_idx_t idx, uint32_t *data0, uint32_t *data1)
 set eui scan disp data More...
 
uint16_t eui_get_scan_key_by_row (EUI_Type *eui, uint8_t row)
 get eui scan key value by row More...
 
bool eui_get_scan_key_by_row_col (EUI_Type *eui, uint8_t row, uint8_t col)
 get eui scan key value by row and column More...
 
uint32_t eui_get_time (EUI_Type *eui, uint32_t eui_clk_freq, eui_time_id_t id)
 get time value, unit: us More...
 

Detailed Description

EUI driver APIs.

Enumeration Type Documentation

◆ eui_b_disp_format_t

#include <drivers/inc/hpm_eui_drv.h>

eui b disp date format

Enumerator
eui_b_disp_b 
eui_b_disp_a_and_b 
eui_b_disp_a_or_b 
eui_b_disp_a_xor_b 

◆ eui_dedicate_output_lines_t

#include <drivers/inc/hpm_eui_drv.h>

Number of dedicated output lines.

Enumerator
eui_dedicate_output_0_line 
eui_dedicate_output_1_line 
eui_dedicate_output_2_lines 
eui_dedicate_output_3_lines 
eui_dedicate_output_4_lines 
eui_dedicate_output_5_lines 
eui_dedicate_output_6_lines 
eui_dedicate_output_24_lines 

◆ eui_disp_ctrl_idx_t

#include <drivers/inc/hpm_eui_drv.h>

eui disp control index

Enumerator
eui_disp_ctrl_idx_ab 
eui_disp_ctrl_idx_cd 
eui_disp_ctrl_idx_ef 
eui_disp_ctrl_idx_gh 

◆ eui_disp_data_idx_t

#include <drivers/inc/hpm_eui_drv.h>

eui disp data index

Enumerator
eui_disp_data_idx_a 
eui_disp_data_idx_b 
eui_disp_data_idx_c 
eui_disp_data_idx_d 
eui_disp_data_idx_e 
eui_disp_data_idx_f 
eui_disp_data_idx_g 
eui_disp_data_idx_h 

◆ eui_irq_mask_t

#include <drivers/inc/hpm_eui_drv.h>

irq mask

Enumerator
eui_irq_area_mask 
eui_irq_single_mask 

◆ eui_time_id_t

#include <drivers/inc/hpm_eui_drv.h>

eui time id

Enumerator
eui_clko_time 
eui_slot_time 
eui_hold_time 
eui_disp_time 
eui_filter_time 

◆ eui_work_mode_t

#include <drivers/inc/hpm_eui_drv.h>

eui work mode selection

Enumerator
eui_work_mode_8x8 
eui_work_mode_16x4 

Function Documentation

◆ eui_clear_intput_data()

static void eui_clear_intput_data ( EUI_Type *  eui)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

clear input data

Parameters
[in]euiEUI base address

◆ eui_clear_irq_flag()

static void eui_clear_irq_flag ( EUI_Type *  eui,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

clear irq flag

Parameters
[in]euiEUI base address
[in]maskirq mask, eui_irq_mask_t

◆ eui_clear_output_data()

static void eui_clear_output_data ( EUI_Type *  eui)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

clear output data

Parameters
[in]euiEUI base address

◆ eui_config_ctrl()

void eui_config_ctrl ( EUI_Type *  eui,
uint32_t  eui_clk_freq,
eui_ctrl_config_t config 
)

#include <drivers/inc/hpm_eui_drv.h>

config control structure

Parameters
[in]euiEUI base address
[in]eui_clk_freqEUI clock frequency
[in]configcontrol config structure pointer, eui_ctrl_config_t

◆ eui_config_disp()

void eui_config_disp ( EUI_Type *  eui,
uint32_t  eui_clk_freq,
eui_disp_ctrl_idx_t  idx,
eui_disp_config_t config 
)

#include <drivers/inc/hpm_eui_drv.h>

config disp structure

Parameters
[in]euiEUI base address
[in]eui_clk_freqEUI clock frequency
[in]idxdisp ctrl index, eui_disp_ctrl_idx_t
[in]configdisp config structure pointer, eui_disp_config_t

◆ eui_get_dedicate_input_data()

static uint16_t eui_get_dedicate_input_data ( EUI_Type *  eui)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

get dedicate input data

Parameters
[in]euiEUI base address
Returns
uint16_t 16 bits dedicate input data

◆ eui_get_default_ctrl_config()

void eui_get_default_ctrl_config ( EUI_Type *  eui,
eui_ctrl_config_t config 
)

#include <drivers/inc/hpm_eui_drv.h>

get default control config structure

Parameters
[in]euiEUI base address
[out]configcontrol config structure pointer, eui_ctrl_config_t

◆ eui_get_irq_enable_status()

static uint32_t eui_get_irq_enable_status ( EUI_Type *  eui)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

get irq enable status

Parameters
[in]euiEUI base address
Return values
irqenable status, eui_irq_mask_t

◆ eui_get_irq_status()

static uint32_t eui_get_irq_status ( EUI_Type *  eui)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

get irq status

Parameters
[in]euiEUI base address
Return values
irqstatus, eui_irq_mask_t

◆ eui_get_scan_disp_data()

void eui_get_scan_disp_data ( EUI_Type *  eui,
eui_disp_data_idx_t  idx,
uint32_t *  data0,
uint32_t *  data1 
)

#include <drivers/inc/hpm_eui_drv.h>

set eui scan disp data

Parameters
[in]euiEUI base address
[in]idxdisp data index, eui_disp_data_idx_t
[out]data0disp data index 00
[out]data1disp data index 01

◆ eui_get_scan_key_by_row()

uint16_t eui_get_scan_key_by_row ( EUI_Type *  eui,
uint8_t  row 
)

#include <drivers/inc/hpm_eui_drv.h>

get eui scan key value by row

Parameters
[in]euiEUI base address
[in]rowrow index for scan input data
Returns
uint16_t 16 bits scan input data

◆ eui_get_scan_key_by_row_col()

bool eui_get_scan_key_by_row_col ( EUI_Type *  eui,
uint8_t  row,
uint8_t  col 
)

#include <drivers/inc/hpm_eui_drv.h>

get eui scan key value by row and column

Parameters
[in]euiEUI base address
[in]rowrow index for scan input data
[in]colcolumn index for scan input data
Returns
bool 1 bit scan input data

◆ eui_get_time()

uint32_t eui_get_time ( EUI_Type *  eui,
uint32_t  eui_clk_freq,
eui_time_id_t  id 
)

#include <drivers/inc/hpm_eui_drv.h>

get time value, unit: us

Parameters
[in]euiEUI base address
[in]eui_clk_freqEUI clock frequency
[in]idtime id, eui_time_id_t

◆ eui_get_work_mode()

static eui_work_mode_t eui_get_work_mode ( EUI_Type *  eui)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

get work mode

Parameters
[in]euiEUI base address
Returns
EUI work mode, eui_work_mode_t

◆ eui_set_data_polarity()

static void eui_set_data_polarity ( EUI_Type *  eui,
uint16_t  disp_data_invert,
uint8_t  scan_invert 
)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

set data polarity and scan polarity

Parameters
[in]euiEUI base address
[in]disp_data_invert16 bits disp data invert bit mask, 1 - invert, 0 - not invert
[in]scan_invert8 bits scan invert bit mask, 1 - invert, 0 - not invert

◆ eui_set_dedicate_disp_data()

static void eui_set_dedicate_disp_data ( EUI_Type *  eui,
uint32_t  data 
)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

set dedicate disp data

Parameters
[in]euiEUI base address
[in]data24 bits dedicate disp data

◆ eui_set_enable()

static void eui_set_enable ( EUI_Type *  eui,
bool  enable 
)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

set enable

Parameters
[in]euiEUI base address
[in]enabletrue - enable, false - disable

◆ eui_set_irq_disable()

static void eui_set_irq_disable ( EUI_Type *  eui,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

set irq disable

Parameters
[in]euiEUI base address
[in]maskirq mask, eui_irq_mask_t

◆ eui_set_irq_enable()

static void eui_set_irq_enable ( EUI_Type *  eui,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

set irq enable

Parameters
[in]euiEUI base address
[in]maskirq mask, eui_irq_mask_t

◆ eui_set_scan_disp_data()

void eui_set_scan_disp_data ( EUI_Type *  eui,
eui_disp_data_idx_t  idx,
eui_scan_disp_data_t data 
)

#include <drivers/inc/hpm_eui_drv.h>

set eui scan disp data

Parameters
[in]euiEUI base address
[in]idxdisp data index, eui_disp_data_idx_t
[in]datascan disp data for 8x8 or 16x4, eui_scan_disp_data_t

◆ eui_set_work_mode()

static void eui_set_work_mode ( EUI_Type *  eui,
eui_work_mode_t  mode 
)
inlinestatic

#include <drivers/inc/hpm_eui_drv.h>

set work mode

Parameters
[in]euiEUI base address
[in]modeEUI work mode, eui_work_mode_t