#include "motor.h"
/***************************
* 函数名称:void Timer5ConfigInti(void)
* 函数功能:定时器5初始化
* 入口参数:无
* 返 回 值:无
****************************/
void Timer5ConfigInit(void)
{
uint16_t u16Period;
stc_adt_basecnt_cfg_t stcAdtBaseCntCfg;
stc_adt_CHxX_port_cfg_t stcAdtTIM5ACfg;
stc_adt_CHxX_port_cfg_t stcAdtTIM5BCfg;
DDL_ZERO_STRUCT(stcAdtBaseCntCfg);
DDL_ZERO_STRUCT(stcAdtTIM5ACfg);
DDL_ZERO_STRUCT(stcAdtTIM5BCfg);
Sysctrl_SetPeripheralGate(SysctrlPeripheralAdvTim, TRUE); //ADT外设时钟使能
stcAdtBaseCntCfg.enCntMode = AdtSawtoothMode; //Sawtooth Mode
stcAdtBaseCntCfg.enCntDir = AdtCntUp; // Cnt up
stcAdtBaseCntCfg.enCntClkDiv = AdtClkPClk0Div4; // PCLK0/4
Adt_Init(M0P_ADTIM5, &stcAdtBaseCntCfg); //ADT载波、计数模式、时钟配置
u16Period = 0xFFFF;
Adt_SetPeriod(M0P_ADTIM5, u16Period); //周期设置
stcAdtTIM5ACfg.enCap = AdtCHxCompareInput; //Channel A 作为捕获输入(used as capture input)
stcAdtTIM5ACfg.bFltEn = TRUE;
stcAdtTIM5ACfg.enFltClk = AdtFltClkPclk0Div4;
Adt_CHxXPortCfg(M0P_ADTIM5,AdtCHxA,&stcAdtTIM5ACfg); //Channel A配置 & GPIO CHA 输入滤波使能
stcAdtTIM5BCfg.enCap = AdtCHxCompareInput; //Channel B 作为捕获输入(used as capture input)
stcAdtTIM5BCfg.bFltEn = TRUE;
stcAdtTIM5BCfg.enFltClk = AdtFltClkPclk0Div4;
Adt_CHxXPortCfg(M0P_ADTIM5,AdtCHxB,&stcAdtTIM5BCfg);
Adt_CfgHwCntUp(M0P_ADTIM5, AdtHwCntCHxBHighChxARise); //硬件递加计数条件:CHB为高电平时候,CHA采样到上升沿
Adt_CfgHwCntUp(M0P_ADTIM5, AdtHwCntCHxBLowCHxAFall); //硬件递加计数条件:CHB为低电平时候,CHB采样到下降沿
Adt_CfgHwCntUp(M0P_ADTIM5, AdtHwCntCHxALowCHxBRise); //硬件递加计数条件:CHA为低电平时候,CHB采样到上升沿
Adt_CfgHwCntUp(M0P_ADTIM5, AdtHwCntCHxAHighCHxBFall); //硬件递加计数条件:CHA为高电平时候,CHB采样到下降沿
Adt_CfgHwCntDwn(M0P_ADTIM5, AdtHwCntCHxALowCHxBFall); //硬件递减计数条件:CHA为低电平时候,CHB采样到下降沿
Adt_CfgHwCntDwn(M0P_ADTIM5, AdtHwCntCHxAHighCHxBRise); //硬件递减计数条件:CHA为高电平时候,CHB采样到上升沿
Adt_CfgHwCntDwn(M0P_ADTIM5, AdtHwCntCHxBLowCHxARise); //硬件递减计数条件:CHB为低电平时候,CHA采样到上升沿
Adt_CfgHwCntDwn(M0P_ADTIM5, AdtHwCntCHxBHighCHxAFall); //硬件递减计数条件:CHB为高电平时候,CHA采样到下降沿
Adt_EnableHwClear(M0P_ADTIM5);
Adt_ClearAllIrqFlag(M0P_ADTIM5);
M0P_ADTIM5->CNTER = 16000;
// Adt_CfgIrq(M0P_ADTIM5, AdtCMAIrq, TRUE); //捕获中断A配置
// Adt_CfgIrq(M0P_ADTIM5, AdtCMBIrq, TRUE); //捕获中断B配置
// EnableNvic(ADTIM5_IRQn, IrqLevel3, TRUE); //AdvTimer4中断使能
MotorPidInit();
M0P_ADTIM4->SSTAR = 2;
}
uint16_t GetTim5Cnt(void)
{
return M0P_ADTIM5->CNTER;
}
没有合适的资源?快使用搜索试试~ 我知道了~
华大单片机HC32L136K8TA编码器接口配置

共1个文件
c:1个

需积分: 1 0 下载量 156 浏览量
2023-09-21
15:16:17
上传
评论 1
收藏 1KB RAR 举报
温馨提示
华大单片机HC32L136K8TA编码器接口配置,定时器5,CH0A,CH0B编码器接口,可以识别正反转。
资源推荐
资源详情
资源评论

















收起资源包目录


共 1 条
- 1
资源评论


qq_22978523
- 粉丝: 6
- 资源: 12
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
