小弟先开发一款产品,遇到需要使用两个定时器中断的问题。
5535芯片支持3个软件可编程定时器,现在碰到的问题是,定时器0可以产生定时中断,而定时器1,2也能计数,但无法产生定时中断,不得要领。
TI官方给出的例程是定时器0的程序,修改起来也方便,但是我还是无法实现定时器1,2的中断问题,请大神赐教。
Shine:
TIMCNT1, TIMCNT2能计数到0吗?
TIAFR相应的中断标志位被置1了吗?
SHOURONG HOU:
回复 Shine:
SHOURONG HOU:
回复 Shine:
我现在使用的是5535的板子,但是CSL是5505的,查看了源文件,debug到vector.asm发现底层的中断向量表的中断入口是timer0 的,不知道是不是这个原因,我现在配置timer1,无法进入中断,不知道怎么解决,看官方的资料,这个入口地址应该可以响应timer1啊,不知道是不是芯片本身的bug?????
Shine:
回复 SHOURONG HOU:
SHOURONG HOU
SHOURONG HOU:
回复 Shine:
可以置1啊
Shine:
回复 SHOURONG HOU:
SHOURONG HOU
我现在使用的是5535的板子,但是CSL是5505的,查看了源文件,debug到vector.asm发现底层的中断向量表的中断入口是timer0 的,不知道是不是这个原因,我现在配置timer1,无法进入中断,不知道怎么解决,看官方的资料,这个入口地址应该可以响应timer1啊,不知道是不是芯片本身的bug?????
Shine:
回复 SHOURONG HOU:
SHOURONG HOU
可以置1啊
SHOURONG HOU:
回复 Shine:
谢谢你的回复,首先是问题现在解决了,但是有几点不明白的。
解决方法:
无论是使用哪个timer,都要配置timer0;对TIAFR粗暴的全部写1.
1.为什么我只使用timer0,1,必须要配置timer0才能使用。
2.使用两个定时器会有复位发生,复位后就只有优先级高的可以进入中断了,优先级低的无法进入中断。
Shine:
回复 SHOURONG HOU:
1. timer0, timer1是独立的定时器,不会配了timer0才能用timer1.
2. 两个定时器使用的是同一个中断,不存在中断优先级的问题。
检查一下进入timer中断子程序后是否对TIAFR进行判断并对相应位写1清0,对INTM也要写0使能。