TI中文支持网
TI专业的中文技术问题搜集分享网站

NHET中断

你好,

我现在用nhet的边沿中断,nhet有多个中断源,代码用edge0和edge1;可是代码生成器里面初始化函数

void het1HighLevelInterrupt(void)
{
uint32 vec = hetREG1->OFF1;

if (vec < 18U)
{
if ((vec & 1U) != 0U)
{
pwmNotification(hetREG1,(vec >> 1U) – 1U, pwmEND_OF_PERIOD);
}
else
{
pwmNotification(hetREG1,(vec >> 1U) – 1U, pwmEND_OF_DUTY);
}
}
else
{
edgeNotification(hetREG1,vec – 18U);
}
}都是这个,我想问如果我用了两个nhet中断,那怎么区分是哪个中断源呢,现在这个初始化函数都是edgeNotification(hetREG1,vec – 18U);求指教

Jay:

你好。

这两个中断进来时vec是不一样的,edge0进来vec是18,edge1进来vec是19.

所以,你在edgeNotification函数里,判断传过去的(vec-18)的值就可以区分了。

meng zhang3:

回复 Jay:

谢了,还有个问题,我现在edge0和edge1都配置了也使能了,可是中断只响应edge0不响应edge1是什么原因?vec一直是18没变过

meng zhang3:

回复 meng zhang3:

我把edge0的中断关了,只开edge1vec也显示是18,求指教

Jay:

回复 meng zhang3:

edge0和edge1分别选了哪两个引脚?

是否使用了Share功能?

meng zhang3:

回复 Jay:

分别配置了5和17管脚,share功能在哪里配置?

Jay:

回复 meng zhang3:

5和17的话应该没有Share的问题。

Share可以在Halcogen里面配置,如下图。

附件里有我做的一个测试工程。

edge0选择了HET6,edge1选择了HET7.

用HET1来发送下降沿,触发中断。

测试时,把HET1接到HET6,就会产生edge0中断,在edgeNotification中看到传递过来的edge变量值为0;

把HET1接到HET7,就会产生edge1中断,在edgeNotification中看到传递过来的edge变量值为1。

你可以与你的程序对比测试一下。

hualin zhao:

回复 Jay:

你好,有没有tms470关于edge中断的例程,470的没有产生中断,而570可以,不知道哪里出现了问题,非常感谢。

赞(0)
未经允许不得转载:TI中文支持网 » NHET中断
分享到: 更多 (0)