本帖最后由 laopihappy123 于 2021-11-22 20:21 编辑
关于单片机的定时,在我刚刚学习的时候,都是用软件实现的.但在软件进行延时的过程中,cpu时间被白白浪费了,此时能利用cpu的只有中断.
随着使用的深入,我越发觉得软件定时这是不是个好方法,虽然它很简单.
随后我对硬件定时进行了了解,发现替代的方法有个用定时器来搞的:
在定时器中断里设置一个标志位,每当定时器运行到设定的时间,就将该位置置位(定时短)或+1(定时时间较长),然后用外部程序去查询这个标志位,做判断.
但是我又有了个疑惑,对于后者,假如我要定时30毫秒,定时器溢出时间为1ms,标志位用8位无符号
那到了240的时候,240+30=14 ,溢出了~ 这个怎么处理?
难道我把最大阈值设定为225么? 那假如我有多个不同的延时需要进行处理呢?.... 没办法呀~ 难道要设置最大延时限制值么?...
让人很是摸不着头脑,求大家帮助一下我呀~
---------------分割线---------------
一天后更新,感谢大家的回复与指教,我看了感觉无地自容.....愧对坛龄,愧对老师....
大家的回复我都有好好看,我会好好学习的,谢谢大家
|