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

tms320f28069 time0中断问题

在controlSUITE的 28069的例子里  

F2806x_DefaultIsr.c 这个是所有的 中断服务函数的 集合,

InitPieVectTable(); 初始化里  给 PieVectTable都赋值了,

现在以time0 为例, 我的问题是  为什么我的 程序不会跳转到 TINT0_ISR()  这样函数,  一定要自己写一个 服务函数fun(),  然后PieVectTable.TINT0 = &fun();

才会跳转到fun()里,  这不是很奇怪吗?   你们controlSUITE 的例子里也是像fun()  一样 自己又写了一个函数做服务程序的,   为什么不能用F2806x_DefaultIsr.c  的如何函数呢?

gaoyang9992006:

&为取地址符号,将fun入口地址传递给TINT0,那个向量地址存储列表。

TINT0_ISR肯定是没有地址写入到中断向量表

HG:

timer0的中断在PieVectTable定义的就是TINT0,而且初始化的时候会有类似 PINT *Dest = &PieVectTable.TINT0;的声明,你重写了函数,改过VectTable和初始化没呢?

guoz:

回复 gaoyang9992006:

肯定是取地址的了

guoz:

回复 HG:

InitPieVectTable 里会给 PieVectTable.TINT0 = (PINT) TINT0_ISR;

我在 后来 PieVectTable.TINT0 = &cpu_timer0_isr; 覆盖了,      

问题是cpu_timer0_isr 这个中断会进去,    去掉 PieVectTable.TINT0 = &cpu_timer0_isr 这个,用原始的InitPieVectTable() 初始化, TINT0_ISR这个中断不会进去啊,

你们ti\ccs613\controlSUITE\device_support\f2806x\v151   里面的例子都是覆写那个 中断isr  为什么不用原始F2806x_DefaultIsr.c 里 的入口.

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