TI中文支持网
TI专业的中文技术问题咨询交流网站

关于F28335定时器

求问
问题1.定时器1和2是不通过PIE模块的,为何在定义时要在PIE中断向量表中进行定义
PieVectTable.TINT0 = &cpu_timer0_isr;
软件例程中注掉的部分也是这样设置的
// PieVectTable.TINT2 = &cpu_timer2_isr;
//PieVectTable.XINT13 = &cpu_timer1_isr;
问题2.在中断的定义中,

INT13_ISR, // XINT13 or CPU-Timer 1
INT14_ISR, // CPU-Timer2

有这样的一个定义,当我定义

// PieVectTable.TINT2 = &cpu_timer2_isr;
//PieVectTable.XINT13 = &cpu_timer1_isr;
这样时,是可以正常触发中断的,但是为什么我定义为
// PieVectTable.TINT1 = &cpu_timer1_isr;
就会报错,

#137 struct "PIE_VECT_TABLE" has no field "TINT1"

需要自己进行定义吗,希望各位大神能给予一些意见,谢谢。

Eric Ma:问题1.定时器1和2是不通过PIE模块的,��何在定义时要在PIE中断向量表中进行定义
PieVectTable.TINT0 = &cpu_timer0_isr;
软件例程中注掉的部分也是这样设置的
// PieVectTable.TINT2 = &cpu_timer2_isr;
//PieVectTable.XINT13 = &cpu_timer1_isr;

Eric:

看这个文档里面的中断向量表,如果经过PIE扩展后,所有的中断入口都是通过PIE来定义。

TMS320x2833x, 2823x System Control andInterruptsReference Guide

问题2.在中断的定义中,

INT13_ISR, // XINT13 or CPU-Timer 1INT14_ISR, // CPU-Timer2

有这样的一个定义,当我定义

// PieVectTable.TINT2 = &cpu_timer2_isr;
//PieVectTable.XINT13 = &cpu_timer1_isr;

这样时,是可以正常触发中断的,但是为什么我定义为

// PieVectTable.TINT1 = &cpu_timer1_isr;

就会报错,

#137 struct "PIE_VECT_TABLE" has no field "TINT1"

需要自己进行定义吗,希望各位大神能给予一些意见,谢谢。
ERIC:
你看例程里面已经说明清楚了,如果是CPU TIMER1,它是和外部中断公用一个入口的,所以你只要如下设置就可以。
PieVectTable.XINT13 = &cpu_timer1_isr;

INT13    External Interrupt 13 (XINT13) or  -CPU-Timer1

求问
问题1.定时器1和2是不通过PIE模块的,为何在定义时要在PIE中断向量表中进行定义
PieVectTable.TINT0 = &cpu_timer0_isr;
软件例程中注掉的部分也是这样设置的
// PieVectTable.TINT2 = &cpu_timer2_isr;
//PieVectTable.XINT13 = &cpu_timer1_isr;
问题2.在中断的定义中,

INT13_ISR, // XINT13 or CPU-Timer 1
INT14_ISR, // CPU-Timer2

有这样的一个定义,当我定义

// PieVectTable.TINT2 = &cpu_timer2_isr;
//PieVectTable.XINT13 = &cpu_timer1_isr;
这样时,是可以正常触发中断的,但是为什么我定义为
// PieVectTable.TINT1 = &cpu_timer1_isr;
就会报错,

#137 struct "PIE_VECT_TABLE" has no field "TINT1"

需要自己进行定义吗,希望各位大神能给予一些意见,谢谢。

Fangyuan Zeng:

回复 Eric Ma:

您好,Eric Ma!

                          XINT13和TINT1公用INT13,他会有一个多路复用去选择究竟是哪一个去占用INT13。PieVectTable.XINT13 = &cpu_timer1_isr 按照这个去设置,是可以正常触发定时器1的中断的,但是不明白为什么按照//PieVectTable.TINT1 = &cpu_timer1_isr 去设置就不可以呢?在手册中查到有一个XNMI寄存器的第一位是用来选择究竟是XINT13还是TINT1去占用INT13,但是始终没有找到这个寄存器在程序中的位置。

赞(0)
未经允许不得转载:TI中文支持网 » 关于F28335定时器
分享到: 更多 (0)