请教下关于定时器的问题:
在原有的6670程序上参考Timer例程(感谢Andy Yin1大大,www.deyisupport.com/.../47664.aspx),因为初始化是用gel配置好的,我在原来的代码(非例程的)上增加了例程中的Timer_Interrupts_Init()中断初始化函数、Timer_ISR()中断服务函数和generate_clocks_by_timer()定时器函数,并在程序目录中新增.asm文件,将中断服务程序挂接到14号HWI上。
在main函数新一个Task任务和调用Timer_Interrupts_Init()后,通过任务在Task任务中调用generate_clocks_by_timer()。
发现定时器在计数,但是中断服务程序没用被调用过(uiTick不变化)。检查了下定时器的寄存器,感觉是配的是对的,不知道理解的对不对,如下(只进入了64位定时器模式):
emumgt_clkspd 0x00060000 (6分频)
cntlo 0x005e04b4 (计数,程序跑起来就再变)
cnthi 0x00000000 (计数 高位应该没用到)
prdlo 0x007f2814 (定时器周期)
prdhi 0x00000000
tcr 0x00000088 (会在88和89之间变化,好像表示TIMEOUT电平,其他是模式选择和使能)
tgcr 0x00000003
wdtcr 0x00000000
PS:查看中断寄存器,IER是将14号HWI打开的,但是IFR的14号标志一直没变化,想手动修改IFR数值(CCS3.3可以)看中断服务函数是否挂上,但是不能修改不知道为什么?