求助:定时器的计时问题
定时器配置为16位,不自动装载,在定时中断函数执行期间,定时器是否继续计时? 哪位高手知道,请回复。 其实使用仿真跑一下就知道了,会继续计时的:中断函数内不会计数 你说的对,在定时中断函数内,返回之前,装载定时寄存器的值,然后中断返回。
只有在执行最后一条“中断返回指令”时,硬件才会清楚中断溢出标志,这样,
才会触发定时器继续计时。
liuyang21168 发表于 2023-12-30 19:42
你说的对,在定时中断函数内,返回之前,装载定时寄存器的值,然后中断返回。
只有在执行最后一条“中断返 ...
那请问在中断中还需要再开启定时器的计数使能位么? 需要开启,当中断函数结束后,继续接收下一次定时中断 我理解是自动重装载、中断处理函数里面不清除定时器使能的时候是会继续计时;相反,手动装载、清除定时器使能的时候,定时器就不计时了 liuyang21168 发表于 2023-12-31 01:52
需要开启,当中断函数结束后,继续接收下一次定时中断
但我还有一个疑问,,只有退出中断的时候才会开始计时这里。
就算我在中断中使能了定时器的计数使能位,定时器也不计时,只有退出了中断才会开始计时?我感觉有点儿不太对劲呢。。。OTZ 楼上几位都错了~~~
无论中断是否打开, 是否响应中断, 只要定时计数器打开, 就永不停止的循环计数(通常是 16位), 碰到溢出 就置位溢出标志, 反正计数永不停止.
如果是自动重装模式, 计数到, 除了置位溢出标志外 ,还会立刻重装计数器