打印
[MCU]

TI例程中进不去CAP中断怎么回事啊

[复制链接]
290|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenykun|  楼主 | 2019-7-29 23:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhenykun|  楼主 | 2019-7-29 23:50 | 只看该作者

标准的TI例程中,设置用CAP4、CAP5中断处理霍尔信号,有刷电机,里面装的是HALL传感器用于计算转速
主函数定义了
interrupt void CAPINT4_ISR(void);
PieVectTable.CAPINT4 = &CAPINT4_ISR;
PieCtrlRegs.PIEIER5.bit.INTx5 = 1;//CAP4INT Enable
IER |= M_INT5;
初始化EV中CAP,这里调用的是初始化函数以及参与计算的read函数
void
F281X_EV2_CAP_Init(CAPTURE *p)
{

EvbRegs.CAPCONB.all = CAP_INIT_STATE;


EvbRegs.T4CON.all = TIMER_INIT_STATE;



EvbRegs.T4PR = 0x7FFF;



EvbRegs.CAPFIFOB.bit.CAP4FIFO = 0x01;

EvbRegs.EVBIFRC.bit.CAP4INT = 1;

EvbRegs.EVBIMRC.bit.CAP4INT = 1;

EALLOW;




GpioMuxRegs.GPBMUX.all |= 0x0700;


EDIS;

}

Uint16 F281X_EV2_CAP_Read(CAPTURE *p)
{

if((EvbRegs.CAPFIFOB.all & 0x0100) != 0)



{

p->TimeStamp = EvbRegs.CAP4FIFO;


return(0);


}

else

{


return(1);


}
}

测试是否进入中断的函数
#if (DSP_TARGET==F2812)
interrupt void CAPINT4_ISR(void)
{

flag_HALLspeed++;
        cap1.read(&cap1);

EvbRegs.CAPFIFOB.bit.CAP4FIFO = 0x01;

EvbRegs.EVBIFRC.bit.CAP4INT = 0x1;

EvbRegs.EVBIMRC.bit.CAP4INT = 0x1;
PieCtrlRegs.PIEACK.all |= PIEACK_GROUP5;

EINT;
}
#endif
测试的结果是一直没有进入中断,
if((EvbRegs.CAPFIFOB.all & 0x0100) != 0)



{

p->TimeStamp = EvbRegs.CAP4FIFO;


return(0);


}
   上面这段程序一直没有执行

使用特权

评论回复
板凳
jiahy| | 2019-7-29 23:53 | 只看该作者
没执行现象是啥

使用特权

评论回复
地板
zhangmangui| | 2019-7-29 23:54 | 只看该作者
确定触发了  是吧  

使用特权

评论回复
5
zhenykun|  楼主 | 2019-7-29 23:57 | 只看该作者

CAP4FIFO的值始终为0,
cap1.read(&cap1);的返回值一直为1

使用特权

评论回复
6
shimx| | 2019-7-29 23:59 | 只看该作者
CAP4FIFO口一直被开开了,可是为什么在程序运行后CAPFIFOB中对应于CAP4FIFO的值一直是0

使用特权

评论回复
7
zhenykun|  楼主 | 2019-7-30 20:17 | 只看该作者
是啊,我也不明白为什么

使用特权

评论回复
8
午夜粪车| | 2019-7-30 20:34 | 只看该作者
没明白。:L

使用特权

评论回复
9
dengdc| | 2019-7-30 20:36 | 只看该作者
可能是设置不对或对硬件的操作不对吧,不是太明白

使用特权

评论回复
10
spark周| | 2019-7-30 20:39 | 只看该作者
有没有信号进来呢

使用特权

评论回复
11
zhenykun|  楼主 | 2019-7-30 20:41 | 只看该作者
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

868

主题

11535

帖子

3

粉丝