关于DSP的中断操作

本文与TMS320DM6437为例,实现开启DSP中断事件。

1、首先,对中断系统进行初始化操作。

其中,中断清除寄存器ICR: IC4-IC15位写1会引起中断标志寄存器IFR对应标志位清0,置为0xffff表示清除所有中断标志位。 

2、编写.cmd文件,定义可用内存空间及段分配

INT:预留空间,首地址为0x10800400;  放置IST .vector段,内容为IST,在init.sam中定义

3、定义IST的内容 .vector段对应IST,使用中断源INT14;中断服务程序的首地址为extint14_isr 

4、选用bank中断(组中断)或单中断

本文选取bank中断,BINTEN对中断和EDMA事件起控制作用。EN0~EN6分别对应bank0~bank6,其他位保留。 ENx = 0:关闭         bank x中断 ENx = 1: bank x中断使能。

BINTEN的0位置1,使能bank0中断。

5、设置触发GPIO中断触发方式(即下降沿触发还是上升沿触发)及中断号事件

本文选取下降沿触发,下降沿沿触发寄存器SET_FALL_TRIG(32位,对应GP0-GP31)

 由表可知,GP[1]触发65号事件发生。

6、使能中断事件 

这里用到中断使能寄存器IER:

这里我们使能事件14,即IER|=0x00004000(即使IE14置为1)

7、开启全局中断

这里用到控制状态寄存器CSR:

GIE位置0,表示禁止所有的可屏蔽中断       PGIE位置0,表示不保存先前GIE的值

GIE位置1,开启全局中断,即CSR=0x01;

 

 8、设计中断事件与中断源的连接方式(EVT65----INT14) 管脚GP1的事件号为65,连接到INT14,寄存器INTC_INTMUX3: INTSEL14域置为41(十进制为65),表示65号中断事件与INT14相连。

寄存器INTC_INTMUX3,如上图可知,可设置事件12,13,14,15中断源对应的中断号事件。

假设我要让INT14映射到GPIO1,那么通过查找上面的图,发现GPINT14的事件编号是65,那么只要把INTMUX3的16-22位设置成0x41即可。如下:

9、编写中断服务程序ISR

interrupt void extint14_isr(void)
{

         

}

至此,DSP的中断初始化完成!

下面,举个小实验

1、实验目的 通过键盘控制LED灯

2、实验原理(实验装置) 显示/控制模块ICETEK-CTR通过接口P8连接小键盘,接收小键盘传送的扫描码,并在每个扫描码结束后保存 同时向DSP的GP1发送中断信号; 当DSP每中断两次,LED灯改变一次状态。

               

          

  

 

 

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值