/****************************************************************************** * Shanghai ChipON Micro-Electronic Co.,Ltd * ****************************************************************************** * $File Name$ : KF32A156_qei.h * * $Author$ : ChipON AE/FAE Group * * $Data$ : 2021-07-08 * * $AutoSAR Version : V2.0 * * $Description$ : This file contains the headers of the QEI * * peripherals. * ****************************************************************************** * Copyright (C) by Shanghai ChipON Micro-Electronic Co.,Ltd * * All rights reserved. * * * * This software is copyright protected and proprietary to * * Shanghai ChipON Micro-Electronic Co.,Ltd. * ****************************************************************************** * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * REVISON HISTORY * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Data Version Author Description * * ~~~~~~~~~~ ~~~~~~~~ ~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * * * * * * *****************************************************************************/ #ifndef KF32A156_QEI_H_ #define KF32A156_QEI_H_ #include "KF32A156.h" /** * 描述 QEI模块正交编码器信息结构体 */ typedef struct { FunctionalState m_IndexReset; /* 位置计数器复位使能, 取值为TRUE或FALSE。 */ FunctionalState m_DirectionEn; /* 位置计数器方向状态输出使能, 取值为TRUE或FALSE。 */ uint32_t m_WorkClock; /* QEI工作时钟, 取值为宏“QEI工作时钟”中的一个 */ FunctionalState m_DigitalFilterEn; /* QEI数字滤波器输出使能, 取值为TRUE或FALSE。 */ uint32_t m_DigitalFilterPrescaler; /* QEI数字滤波器时钟分频, 取值为宏“QEI数字滤波器时钟分频”中的一个 */ FunctionalState m_SwapABEn; /* A相和B相输入交换使能, 取值为TRUE或FALSE。 */ uint16_t m_Counter; /* 计数器计数值, 取值16位数据。 */ uint16_t m_Period; /* 周期值, 取值16位数据。 */ uint16_t m_Prescaler; /* 定时器预分频值, 取值16位数据。 */ }QEI_InitTypeDef; /** * 描述 QEI定时器(T7/T8)定时器信息结构体 */ typedef struct { uint16_t m_Counter; /* 定时器计数值, 取值16位数据。 */ uint16_t m_Period; /* 定时器周期值, 取值16位数据。 */ uint16_t m_Prescaler; /* 定时器预分频值, 取值16位数据。 */ uint32_t m_CounterMode; /* 计数器方向, 取值为宏“QEI位置计数器方向”中的一个 */ uint32_t m_ClockSource; /* 定时器时钟源选择, 取值为宏“QEI定时器时钟源”中的一个 */ }QEI_TimerTypeDef; /** * QEI内存指针 */ #define CHECK_QEI_ALL_PERIPH(PERIPH) (((PERIPH) == QEI0_SFR) \ || ((PERIPH) == QEI1_SFR)) /** * QEI正交编码器接口模式 */ #define QEI_ENCODER_OFF ((uint32_t)0) #define QEI_GENERAL_PURPOSE_COUNTER ((uint32_t)1) #define QEI_X2_INDEX_PULSE_RESET ((uint32_t)4) #define QEI_X2_MATCH_RESET ((uint32_t)5) #define QEI_X4_INDEX_PULSE_RESET ((uint32_t)6) #define QEI_X4_MATCH_RESET ((uint32_t)7) #define CHECK_QEI_PORT_MODE(MODE) (((MODE) == QEI_ENCODER_OFF) \ || ((MODE) == QEI_GENERAL_PURPOSE_COUNTER) \ || ((MODE) == QEI_X2_INDEX_PULSE_RESET) \ || ((MODE) == QEI_X2_MATCH_RESET) \ || ((MODE) == QEI_X4_INDEX_PULSE_RESET) \ || ((MODE) == QEI_X4_MATCH_RESET)) /** * QEI定时器时钟源 */ #define QEI_TIMER_SOURCE_SCLK ((uint32_t)0<