dsp中断冲突怎么解决

dsp中断冲突怎么解决,第1张

1、首先颂颂打开电脑,在电脑上找到dsp,并打开。

2、其次打开dsp以后在其主页面检查网络是否敏樱激能使用。

3、最后在dsp内点击重新连接即可解决中端冲突。桥袜

最简单的情况,拿溢出中断来说吧。当你设置的值超过计数值后,就会产生溢出中断,贴个程序你看一下。

#include "DSP281x_Device.h"

Uint16 Number_10ms = 0

#pragma CODE_SECTION(User_T3PINT_Isr, "ramfuncs")

interrupt void User_T3PINT_Isr(void)// EV-A

{

Number_10ms = (Number_10ms + 1) % 188

if(Number_20ms==0)

{

/////此处写你自己想要在中断中执行的函数。因为这个时中弊候就会产生中断。

}

EvbRegs.EVBIFRA.bit.T3PINT=1

PieCtrlRegs.PIEACK.all |= PIEACK_GROUP4

PieCtrlRegs.PIEIER2.bit.INTx4=1

IER|=M_INT2

}

void main(void)

{

InitSysCtrl()

DINT

InitPieCtrl()

IER = 0x0000

IFR = 0x0000

InitPieVectTable()

EALLOW

PieVectTable.T3PINT = &User_T3PINT_Isr

EDIS

MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart)

EnT3PINT()

EINT // Enable Global interrupt INTM

ERTM // Enable Global realtime interrupt DBGM

while(1)

{}//循环,等待中断

}

好了,大概就是老培拍这样了,中断有很多种的,还是需要自己去慢慢侍羡弄的哦

TI公司的DSP的中断机构 *** 作规则比较复杂,需具体查有关资料。因条件限制我现在只能查到240的资料,但据我所知240和2407很接近,可能是一样的。故我下面按240叙述。即使有细节不同,道理是一样的。然后您再查2407的资料对一下,如有不同的细节可自己更改。

还有,240中“定时器3的周期中断”不是用int2而是用int3,故不符合您所述的问题了。或许2407有不同?或许您的笔误没橘森?不管如何,我下面按照假定您用到了另一个也用int2的中断源,来叙述。

具体您说的情况:

中断向量表中,int2的入口位置写一个跳转指令,跳到您所安排的“定时器1的周期中断”和“另一个int2中断”的共用中断服务程序入口处。

该共用中断服务程序入口处要做的 *** 作是:

(1)保护现场(下面的 *** 作中立即要用到的必须在这里保护,其余的,可以分别在分支中保护);

(2)读取EVIVRA(这是事件管理器专为区分各个中断源而设的代号的存放处。注意即使不需要区分伍游中断源,也应该读取一次EVIVRA,因为只有读了它,才会清除事件管理器中的该次中断的挂号信息);

(3)判断:如果读得的代号是0027h,说明是“定时器1的周期中断”,可跳转到该中断的分支程序去,否则,跳转到“另一个int2中断”的分枯亩支程序去。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12354988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存