不能进入中断函数的怪异问题

[复制链接]
2819|2
 楼主| cxsea2005 发表于 2012-6-30 11:43 | 显示全部楼层 |阅读模式
我用pic33ep64mc504芯片做can+DMA通信,dma2用于can数据接收,使能了can接收中断和dma中断,canrx管脚有波形输入,能产生can中断接收标志位和dma中断标志位,但是进入不了
can中断函数和dma中断函数,总是跳到default interrupt地址中。请问哪里出了问题?怎么解决?需要修改gld文件?
XIEYUANBIN 发表于 2012-7-1 14:27 | 显示全部楼层
有没有使能?
DMA 多少个字节中断一次?
        DMA2CONbits.AMODE = 2;                                //外设间接寻址模式,
        DMA2CONbits.MODE = 0;                                //禁止连续数据块乒乓模式
        DMA2CONbits.SIZE = 0;                                //字传输模式 这是由于ECAN的模式决定的。
        DMA2CONbits.DIR = 0;                                //从外设地址读取,写入DMA
       
        DMA2REQ = 34;                                        //CAN1接收缓冲
        DMA2PAD = (volatile unsigned int)&C1RXD;                                //地址连接到CAN1接收
        DMA2STA = __builtin_dmaoffset(can_rxbuf);
        DMA2CNT = 7;                                        //每次接收8个字中断。
       
        DMA2CONbits.CHEN = 1;
 楼主| cxsea2005 发表于 2012-7-2 13:21 | 显示全部楼层
谢谢楼上的回复,我的dma2寄存器设置和你完全一样,但是不能进入中断函数。在program memory下,我的中断入口地址没有配置,这款芯片的dma2的中断入口地址是0x000044,can1事件中断的中断入口地址是0x00005A,但是编译成功以后,这两个地址的操作码都是nop,也就是说没有跳转到中断函数里。不知哪里有问题?需要设置gld文件?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

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