[技术求助] 读出的数与示波器上显示的数偶尔或相等但大多时间是不等的

[复制链接]
720|13
 楼主| jiajs 发表于 2019-9-13 10:41 | 显示全部楼层 |阅读模式
我的程序可能使那里没有设置好,用capfifo来测速,但capfifo读出来的数总不正确,在我的程序里,每一次进cap中断读一次capfifo的值,但capfifo的状态位除了在开始测速。转速特别低时刻能为01或10,大多数时间是11,读出的数与示波器上显示的数偶尔或相等但大多时间是不等的,请问是什么原因
shimx 发表于 2019-9-13 10:44 | 显示全部楼层
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| jiajs 发表于 2019-9-13 10:47 | 显示全部楼层
我的cap中断程序:

interrupt void CAPINT4_ISR(void) // EV-B

{

PieCtrl.PIEACK.all = PIEACK_GROUP5; // Must acknowledge the PIE group

EvbRegs.EVBIFRC.bit.CAP5INT=1;

rMHall_1=EvbRegs.CAP5FIFO;

EvbRegs.T4CNT=0x0000;



rMHall_2_1 =7812.5/rMHall_1;

EALLOW;



EvbRegs.EVBIMRC.all=EvbRegs.EVBIMRC.all|0x0002;//允许CAP5中断



EINT; //返回前开中断

return;

}
jiaxw 发表于 2019-9-13 10:50 | 显示全部楼层

你从CAP5FBOT中读数据试试
liliang9554 发表于 2019-9-13 10:53 | 显示全部楼层
我个人觉得CAP模块有问题的.每次一进中断,状态寄存器就显示有溢出[丢失一个数据,进来两个数据]
zhanghqi 发表于 2019-9-13 10:56 | 显示全部楼层


是在CAP中断里连续两次读CAPnFBOT的数据吗(算出一个频率)?
zhaoxqi 发表于 2019-9-13 10:59 | 显示全部楼层


是啊,还是进一次读一次,进两次中断才能算一个频率?
huangchui 发表于 2019-9-13 11:01 | 显示全部楼层
我u饿猜测可能有溢出而丢了数据
lizye 发表于 2019-9-13 11:04 | 显示全部楼层


楼上说的也是有道理的,估计是数据丢失了
dengdc 发表于 2019-9-13 11:06 | 显示全部楼层

程序不对吧,拿示波器看下时序;
wuhany 发表于 2019-9-13 11:19 | 显示全部楼层

受什么外界的环境影响了。。
jiahy 发表于 2019-9-13 11:22 | 显示全部楼层
外部中断?
jiaxw 发表于 2019-9-13 11:24 | 显示全部楼层
使用上升沿或者下降沿
 楼主| jiajs 发表于 2019-9-13 11:27 | 显示全部楼层
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先
您需要登录后才可以回帖 登录 | 注册

本版积分规则

940

主题

11975

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部