我用了TimerIntClear(),清除不了啊?
Wellin Zhang:
Yunkun
该函数是用来清除中断标志位的。
你说的清除定时器的值是指清除counter寄存器的值吗?该寄存器是不可进行write操作的。
azhiking:
你是想重设定时器的初值吗?
TimerLoadSet
yukun he:
回复 Wellin Zhang:
是的,那我该怎么清零呢?TimerLoadSet是用来设置计数器范围的呀
yukun he:
回复 azhiking:
不是初值,是让定时器计数器清零呀
azhiking:
回复 yukun he:
这个不是设置计数器范围的,二是设置计数器初值的。
比如:
MCU主频50MHz,定时器Timer0A,初值设置为50000000,
然后开始递减计数,当过去500ms后,你使用TimerValueGet,可以看到此值变为25000000.
利用这个特性,你可以使用定时器来计时。
yukun he:
回复 azhiking:
谢谢,是这样的!这段话说的很明白了
When the timer is counting down and it reaches the timeout event (0x0), the timer reloads its startvalue from the GPTMTnILR and the GPTMTnPR registers on the next cycle. When the timer iscounting up and it reaches the timeout event (the value in the GPTMTnILR and the optionalGPTMTnPR registers), the timer reloads with 0x0.
我以前设置为向上计数了,所以不对。如果向上计数的话,计数范围就是0到load的值~
yukun he:
回复 azhiking:
嗯嗯,thx