📄 zl_qepcap.c
字号:
#include "DSP28_Device.h"
void qepcap(void){
//增量式编码器每转产生1024个脉冲,A,B接入QEP4,QEP5,Z接入CAP6
//QEP正交编码器A,B
//定时器2
//初始化
EvaRegs.CAP3FIFO = 0x0000;
EvaRegs.CAP3FBOT = 0x0000;
EvaRegs.CAPFIFO.all = 0x0000;
EvaRegs.T2PR = 0x0FFFF; // Timer2周期寄存器
//EvaRegs.T2CMPR = 0x0000; // Timer2比较寄存器
EvaRegs.T2CNT = 0x0000; // Timer2计数寄存器 转角信息存在此处
EvaRegs.T2CON.all = 0x9870; // TMODE=定向增/减计数模式,禁止比较
//EvaRegs.T2CON.TMODE(12-11) = 3, 定向增/减计数模式
//EvaRegs.T2CON.TCLKS10(5-4) = 3; 时钟源选择正交脉冲编码电路,对输入四倍频
EvaRegs.CAPCON.bit.CAPQEPN = 0; //禁止捕获单元1和2
EvaRegs.EVAIMRC.bit.CAP3INT = 1;
EvaRegs.EVAIFRC.bit.CAP3INT = 1;
//捕获
EvaRegs.CAPCON.bit.CAP3EN = 1; //允许捕获单元3
EvaRegs.CAPCON.bit.CAP3TSEL = 0; //捕捉单元3的定时器选择定时器2
EvaRegs.CAPCON.bit.CAP3EDGE = 2; //检测下降沿,记录
EALLOW;
GpioMuxRegs.GPAMUX.bit.CAP1Q1_GPIOA8 = 1; //使能CAP1引脚 A
GpioMuxRegs.GPAMUX.bit.CAP2Q2_GPIOA9 = 1; //使能CAP2引脚 B
GpioMuxRegs.GPAMUX.bit.CAP3QI1_GPIOA10 = 1; //使能CAP3引脚 Z
EDIS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -