初始化修改:
EvbRegs.T3PR = 1874;//时钟周期15000完成100us计时
EvbRegs.T3CNT = 0x0000;//初始化计数值
EvbRegs.T3CMPR = 0x0000;//初始化比较值
EvbRegs.T3CON.all = 0x1242;//连续增计数模式,输入时钟为CPU时钟,使能定时器操作,立即装载比较操作
EvbRegs.GPTCONB.all = 0x0076;//使能GP定时器比较输出
EvbRegs.COMCONB.all = 0xCA00;//全比较器输出使能
EvbRegs.ACTRB.all = 0x0666;//比较输出极性
EvbRegs.DBTCONB.all = 0x0000;//死区设置不设置
//EvbRegs.CAPCONB.all = 0x0000;//重置cap寄存器
//EvbRegs.CAPFIFOB.all = 0x0000;
//EvbRegs.CAPCONB.all = 0xB7FC;//使能CAP4,CAP5,选择GP定时器3,两个沿都检测
EvbRegs.EVBIFRA.all = 0x078F;
EvbRegs.EVBIFRB.all = 0x0007;
//EvbRegs.EVBIFRC.all = 0x0007;
EvbRegs.EVBIMRA.all = 0x0082;
EvbRegs.EVBIMRB.all = 0x0007;
//EvbRegs.EVBIMRC.all = 0x0007;
EvbRegs.EXTCONB.all = 0x0000;
变量定义:
1MS计数 标志位: UINT16 MSF;
捕获次数标志位:UINT16 F[2];
捕获比较寄存器:UINT16 temp[2];
冗余DSP 主程序中判断:
if( MSF == 1 )
{
if(f[0] == 0)
{
if(f[1] == 0)
{
temp[0] = EvbRegs.CAP4FIFO;
f[1] = 1;
}
else
{
temp[1] = EvbRegs.CAP4FIFO;
f[1] = 0;
temp[2] = temp[1] - temp[0];
f[0] = 1;
}
}
else
{
if(f[1] == 0)
{
temp[0] = EvbRegs.CAP4FIFO;
f[1] = 1;
}
else
{
temp[1] = EvbRegs.CAP4FIFO;
f[1] = 0;
temp[3] = temp[1] - temp[0];
f[0] = 0;
if(temp[2] == temp[3] |temp[2] -temp[3] == 1|temp[3] - temp[2] == 1)
{
ERR = 1;
}
else
{
ERR = 0;
}
}
}
}
主DSP 定时器中断中PWM修改和标志位判断:
if( k < 10 )
{
k ++;
MSF = 0;
}
ELSE
{
k = 0;
MSF = 1;
}
if(EvbRegs.CMPR4 < 1687)
{
EvbRegs.CMPR4 = EvbRegs.CMPR4 + 10;
}
else
{
EvbRegs.CMPR4 = 187;
}
PWM-CAP.rar_2812 cap_2812 pwm 中断_2812 捕获中断_CAP 2812_占空检测
版权申诉
26 浏览量
2022-09-24
17:14:10
上传
评论
收藏 833B RAR 举报
weixin_42653672
- 粉丝: 94
- 资源: 1万+
最新资源
- Linux常用命令及用法说明
- 基于Matlab的FFT频谱分析及IIR数字滤波器设计
- AutoCAD高压低压电气开关柜设备接线图图纸
- AutoCAD电气图纸建筑电气开关柜常用cad图纸
- 使用ASP.NET Core和Entity Framework Core来构建一个基本的进销存系统.rar
- 深度学习经典数据集+FER2013面部表情识别+附带使用方法的python代码
- Python中,要实现连接多个相机并识别多个二维码.rar
- 使用FFT算法对一个信号进行分析.rar
- 171cms游戏应用下载系统源码.zip
- 基于jsp+servlet+mysql蛋糕甜品店购物网站源码+数据库(期末大作业).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0