DSP28335中断配置——例can中断配置

以前一直看寄存器手册也没明白到底中断是怎么配置的,只是看例程上别人是这么用的,最近在使用CAN中断遇到了一些问题,才开始看中断配置的资料,DSP的中断是被TI封装好了的,我们都知道dsp中断分为三级,分别去配置三级中断使能就好了,简单的一批。

F28335中断机制

        F28335采用3级中断机制,外设级、PIE级、CPU级中断,最内核部分为CPU级中断,即CPU只能响应从CPU中断线上的中断请求,28335中断源有58个,中断线不够用(16条,2(复位、NMI)条不能屏蔽复),为了安排中断线复用使用了复用管理PIE级中断(支持96个外设中断),外设产生中断→PIE允许→CPU响应

1、

	InitPieCtrl();//初始化IER IFR清零

	IER = 0x0000;
	IFR = 0x0000;

	InitPieVectTable();//初始化PIE向量表

2、使能外设对应的PIE级中断

PieCtrlRegs.PIEIER9.all |= M_INT7;//例can中断 第9组第7个

3、使能外设级中断,不同外设的中断要去不同模块中查找

ECanbRegs.CANGIM.bit.I0EN = 1; //使能ECAN0INT中断

4、使能cpu级及全局中断

IER |= M_INT9;  //使能第9组中断
EINT;	// Enable Global interrupt INTM 使能全局中断
ERTM;	// Enable Global realtime interrupt DBGM 使能全局实时中断

5、指定中断向量表

      EALLOW;
//        PieVectTable.ECAN0INTA = &ECAN0INTB_ISR; // eCAN接收中断
        PieVectTable.ECAN0INTB = &ECAN0INTB_ISR; // eCAN接收中断
        EDIS;

6、中断服务函数,使用完中断要清理标志位

interrupt void ECAN0INTB_ISR(void) // eCAN-B接收中断
{
//调用指令
PieCtrlRegs.PIEACK.all = PIEACK_GROUP9; //复位中断应答寄存器
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jarrett_Zheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值