减小字体
增大字体
作者:佚名 来源:本站整理 发布时间:2009-01-10 22:42:07
下面结合一个具体的机器人DSP控制程序,给出DSP实时多中断任务处理的实例。在本机器人DSP控制程序中,一共要完成四个中断实时处理任务,并且涉及到了多个中断源共享DSP内核同一中断级的中断方式。中断服务程序结构框图如图6所示。串行中断SCI占用了INT1第一级中断,完成DSP与上位机的通信任务。定时器T1中断占用了INT2第二级中断,完成传感器的位置信息采集和PID控制任务。而定时器T2中断和定时器T3中断则共用了INT3第三级中断,完成产生两路PWM波形的任务。定时器T2和定时器T3各自周期中断的向量偏移地址分别为002BH和002FH。当有INT3级中断申请时,在对应的中断服务程序(ISR)中判断中断的向量偏移地址,以此来确定具体是产生了定时器T2中断还是定时器T3中断,再转入定时器T2/T3相应的子中断服务程序。在中断服务程序中,需要根据在中断程序中对各种寄存器的使用情况,编写中断保护和中断恢复代码,即在进入ISR时,要对这些寄存器变量进行堆栈保护;在ISR完成时,要对这些寄存器变量进行堆栈恢复。另外,在编写中断服务程序时,要注意对各寄存器的中断标志位和中断屏蔽位进行适当的处理,为进入下一次中断做准备。以下即为给出的机器人中断服务程序的核心代码,主要对两个定时器中断源共享INT3中断级的中断处理进行详尽地阐述。对于INT1和INT2这两个中断任务,由于无多中断源共享的问题,在进行中断处理时比较简单,直接进入相应的ISR即可。相应的中断处理程序请见网络补充版。结语
在利用DSP进行数字化控制的过程中,必然要使用到较多的中断才能圆满完成对复杂控制系统的控制任务。F240作为DSP TMS320F24x系列的典型代表,掌握F240的中断处理方法,对TMS320F24x系列的TMS320F241/F243/C242以及TMS320LF2406/LF2407等芯片同样具有参考意义。因此,这种处理方法还具有一定的通用性。笔者将该处理方法应用到基于TMS320F240的主从遥控作业机器人控制系统的软件开发中。经实践证明,这能够满足机器人的实时多中断任务处理的要求,并取得了良好的实际效果。
上一页 [1] [2]