本帖最后由 y18370990546 于 2020-3-16 20:48 编辑
器件:TMS320C6416
在调试mcbsp和EDMA接口时,发现EDMA发送和接收经常进不去中断(有时能进去)。mcbsp的时钟和帧同步信号正常。
采用mcbsp0,对应EDMA通道12(Tx),13(Rx)。EDMA模块的TCINTEN已设置为1
中断配置如下:
IRQ_resetAll();
IRQ_setVecs(vectors);
IRQ_nmiEnable();
IRQ_globalEnable(); //全局使能中断
/************* EDMA 事件 ************/
IRQ_map(IRQ_EVT_EDMAINT,8);
IRQ_reset(IRQ_EVT_EDMAINT);
IRQ_disable(IRQ_EVT_EDMAINT);
IRQ_clear(IRQ_EVT_EDMAINT);
IRQ_enable(IRQ_EVT_EDMAINT);
EDMA_intEnable(12); //使能通道中断12,CIERL寄存器
EDMA_intEnable(13); //使能通道中断13,CIERL寄存器
EDMA_enableChannel(hEdma12); //使能EDMA12事件,EERL
EDMA_enableChannel(hEdma13); //使能EDMA13事件,EERL
void interrupt c_int08()
{
if(EDMA_intTest(12)) //测试EDMA传输完成中断未决标志位
{
//EDMA_disableChannel(12);//关闭EDMA传输通道
EDMA_intClear(12); //清除EDMA传输完成中断未决标志位
EDMA_xmitflag0 = 1;
}
if(EDMA_intTest(13))
{
//EDMA_disableChannel(13);
EDMA_intClear(13);
EDMA_recvflag0 = 1;
}
IRQ_clear(IRQ_EVT_EDMAINT); //从IFR寄存器中清除EDMA中断标志
}
请教各位大师,是否我的配置顺序有问题,还是缺少什么?
|