HPM SDK
HPMicro Software Development Kit
hpm_qei_encoder.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024 HPMicro
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  *
6  */
7 
8 #ifndef _HPM_QEI_ENCODER_H
9 #define _HPM_QEI_ENCODER_H
10 
11 #include "hpm_soc_feature.h"
12 #include "hpm_plb_drv.h"
13 #include "hpm_trgm_drv.h"
14 
15 /* @brief Common status code definitions */
16 enum {
18 };
19 
24 typedef enum {
34 
39 typedef enum {
41  plb_abz_mode = 1
43 
48 typedef struct {
49  uint16_t qei_a;
50  uint16_t qei_b;
51  uint16_t qei_z;
53 
58 typedef struct {
59  uint32_t phase_cnt;
62  uint16_t filter_length;
63  bool enable_z_pin;
64  bool enable_phase;
66 
67 #if defined(__cplusplus)
68 extern "C" {
69 #endif /* __cplusplus */
70 
81 
90 
99 
108 
117 
118 #if defined(__cplusplus)
119 }
120 #endif /* __cplusplus */
121 
122 #endif
uint32_t hpm_stat_t
Definition: hpm_common.h:126
#define MAKE_STATUS(group, code)
Definition: hpm_common.h:135
@ status_group_plb_qei_encoder
Definition: hpm_common.h:174
void plb_qei_encoder_set_phase_count(PLB_Type *plb, plb_qei_encoder_channel_t qei_chn, uint32_t val)
Set phase count.
Definition: hpm_qei_encoder.c:231
plb_qei_encoder_channel_t
abz channel
Definition: hpm_qei_encoder.h:24
@ plb_qei_encoder_channel_1
Definition: hpm_qei_encoder.h:26
@ plb_qei_encoder_channel_3
Definition: hpm_qei_encoder.h:28
@ plb_qei_encoder_channel_6
Definition: hpm_qei_encoder.h:31
@ plb_qei_encoder_channel_5
Definition: hpm_qei_encoder.h:30
@ plb_qei_encoder_channel_2
Definition: hpm_qei_encoder.h:27
@ plb_qei_encoder_channel_4
Definition: hpm_qei_encoder.h:29
@ plb_qei_encoder_channel_7
Definition: hpm_qei_encoder.h:32
@ plb_qei_encoder_channel_0
Definition: hpm_qei_encoder.h:25
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.
Definition: hpm_qei_encoder.c:13
void plb_qei_encoder_set_laps_number(PLB_Type *plb, plb_qei_encoder_channel_t qei_chn, int32_t val)
Set Lap data.
Definition: hpm_qei_encoder.c:241
uint32_t plb_qei_encoder_get_laps_number(PLB_Type *plb, plb_qei_encoder_channel_t qei_chn)
Get Lap Data.
Definition: hpm_qei_encoder.c:236
@ status_unsupport_plb
Definition: hpm_qei_encoder.h:17
uint32_t plb_qei_encoder_get_phase_count(PLB_Type *plb, plb_qei_encoder_channel_t qei_chn)
Get location information.
Definition: hpm_qei_encoder.c:226
plb_qei_encoder_mode_t
encoder mode
Definition: hpm_qei_encoder.h:39
@ plb_abz_mode
Definition: hpm_qei_encoder.h:41
@ plb_ab_mode
Definition: hpm_qei_encoder.h:40
Definition: hpm_plb_regs.h:12
Definition: hpm_trgm_regs.h:12
Configuration information for qei.
Definition: hpm_qei_encoder.h:58
plb_qei_encoder_mode_t mode
Definition: hpm_qei_encoder.h:61
bool enable_z_pin
Definition: hpm_qei_encoder.h:63
uint32_t phase_cnt
Definition: hpm_qei_encoder.h:59
plb_qei_encoder_trgmux_input_t trgm_input
Definition: hpm_qei_encoder.h:60
uint16_t filter_length
Definition: hpm_qei_encoder.h:62
bool enable_phase
Definition: hpm_qei_encoder.h:64
Pinout resources via trgmux inputs.
Definition: hpm_qei_encoder.h:48
uint16_t qei_b
Definition: hpm_qei_encoder.h:50
uint16_t qei_a
Definition: hpm_qei_encoder.h:49
uint16_t qei_z
Definition: hpm_qei_encoder.h:51