打印

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

[复制链接]
644|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenykun|  楼主 | 2017-5-25 22:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhenykun|  楼主 | 2017-5-25 22:40 | 只看该作者

标准的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| | 2017-5-25 22:41 | 只看该作者

没执行现象是啥

使用特权

评论回复
地板
zhenykun|  楼主 | 2017-5-25 22:43 | 只看该作者

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

使用特权

评论回复
5
shimx| | 2017-5-25 22:45 | 只看该作者

CAP4FIFO口一直被开开了,可是为什么在程序运行后CAPFIFOB中对应于CAP4FIFO的值一直是0

使用特权

评论回复
6
zhenykun|  楼主 | 2017-5-25 22:48 | 只看该作者

是啊,我也不明白为什么

使用特权

评论回复
7
午夜粪车| | 2017-5-25 22:52 | 只看该作者

没明白。:L

使用特权

评论回复
8
dengdc| | 2017-5-25 22:53 | 只看该作者

可能是设置不对或对硬件的操作不对吧,不是太明白

使用特权

评论回复
9
zhenykun|  楼主 | 2017-5-25 22:56 | 只看该作者
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦

使用特权

评论回复
10
米尔豪斯| | 2017-5-26 20:51 | 只看该作者
有没有信号进来呢

使用特权

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

本版积分规则

868

主题

11535

帖子

3

粉丝