HPM SDK
HPMicro Software Development Kit
hpm_qei_encoder.h File Reference
#include "hpm_soc_feature.h"
#include "hpm_plb_drv.h"
#include "hpm_trgm_drv.h"

Go to the source code of this file.

Data Structures

struct  plb_qei_encoder_trgmux_input_t
 Pinout resources via trgmux inputs. More...
 
struct  plb_qei_encoder_cfg_t
 Configuration information for qei. More...
 

Enumerations

enum  { status_unsupport_plb = MAKE_STATUS(status_group_plb_qei_encoder, 0) }
 
enum  plb_qei_encoder_channel_t {
  plb_qei_encoder_channel_0 = 0 , plb_qei_encoder_channel_1 = 1 , plb_qei_encoder_channel_2 = 2 , plb_qei_encoder_channel_3 = 3 ,
  plb_qei_encoder_channel_4 = 4 , plb_qei_encoder_channel_5 = 5 , plb_qei_encoder_channel_6 = 6 , plb_qei_encoder_channel_7 = 7
}
 abz channel More...
 
enum  plb_qei_encoder_mode_t { plb_ab_mode = 0 , plb_abz_mode = 1 }
 encoder mode More...
 

Functions

hpm_stat_t plb_qei_encoder_init (PLB_Type *plb, TRGM_Type *trgm, plb_qei_encoder_channel_t qei_chn, plb_qei_encoder_cfg_t *cfg)
 Initializing the encoder. More...
 
uint32_t plb_qei_encoder_get_phase_count (PLB_Type *plb, plb_qei_encoder_channel_t qei_chn)
 Get location information. More...
 
void plb_qei_encoder_set_phase_count (PLB_Type *plb, plb_qei_encoder_channel_t qei_chn, uint32_t val)
 Set phase count. More...
 
uint32_t plb_qei_encoder_get_laps_number (PLB_Type *plb, plb_qei_encoder_channel_t qei_chn)
 Get Lap Data. More...
 
void plb_qei_encoder_set_laps_number (PLB_Type *plb, plb_qei_encoder_channel_t qei_chn, int32_t val)
 Set Lap data. More...
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
status_unsupport_plb 

◆ plb_qei_encoder_channel_t

abz channel

Enumerator
plb_qei_encoder_channel_0 
plb_qei_encoder_channel_1 
plb_qei_encoder_channel_2 
plb_qei_encoder_channel_3 
plb_qei_encoder_channel_4 
plb_qei_encoder_channel_5 
plb_qei_encoder_channel_6 
plb_qei_encoder_channel_7 

◆ plb_qei_encoder_mode_t

encoder mode

Enumerator
plb_ab_mode 
plb_abz_mode 

Function Documentation

◆ plb_qei_encoder_get_laps_number()

uint32_t plb_qei_encoder_get_laps_number ( PLB_Type plb,
plb_qei_encoder_channel_t  qei_chn 
)

Get Lap Data.

Parameters
plbPLB_Type
qei_chnplb_qei_encoder_channel_t
Returns
laps

◆ plb_qei_encoder_get_phase_count()

uint32_t plb_qei_encoder_get_phase_count ( PLB_Type plb,
plb_qei_encoder_channel_t  qei_chn 
)

Get location information.

Parameters
plbPLB_Type
qei_chnplb_qei_encoder_channel_t
Returns
Encoder position

◆ plb_qei_encoder_init()

hpm_stat_t plb_qei_encoder_init ( PLB_Type plb,
TRGM_Type trgm,
plb_qei_encoder_channel_t  qei_chn,
plb_qei_encoder_cfg_t cfg 
)

Initializing the encoder.

Parameters
plbPLB_Type
trgmTRGM_Type
qei_chnplb_qei_encoder_channel_t
cfgplb_qei_encoder_cfg_t
Returns
hpm_stat_t Whether the initialization is successful or not

pwm

pulse

z phase

Wait for the circuit to stabilize

Zeroing registers, because of the timing logic, requires multiple zeroes to completely erase the data

◆ plb_qei_encoder_set_laps_number()

void plb_qei_encoder_set_laps_number ( PLB_Type plb,
plb_qei_encoder_channel_t  qei_chn,
int32_t  val 
)

Set Lap data.

Parameters
plbPLB_Type
qei_chnplb_qei_encoder_channel_t
vallaps

◆ plb_qei_encoder_set_phase_count()

void plb_qei_encoder_set_phase_count ( PLB_Type plb,
plb_qei_encoder_channel_t  qei_chn,
uint32_t  val 
)

Set phase count.

Parameters
plbPLB_Type
qei_chnplb_qei_encoder_channel_t
valvalue