Dotcpp  >  编程教程  >  定时器  >  定时器概念

定时器概念

点击打开在线编译器,边学边练

1.生活的例子

通过上一章大家已经有了对中断知识的了解,像外部中断这种需要物理动作才能触发中断函数执行,但很多情况下我们需要的是中断函数在适当时刻可以自动得去执行,所以就需要定时器来辅助了。

定时器是单片机内部的一个硬件资源。

用生活常见现象举例:定时器相当于一个闹钟,我们调5分钟后闹钟就响,在这5分钟里我们想做什么就做什么,相当于我们自己是主函数里的任务,想运行什么任务就运行什么,也不用去理会闹钟还剩多少时间就响,我们只是一直做我们想做的事就行。

之后闹钟响了,这时我们不能再任性去做主函数的事了,得赶紧把中断函数里的事办完先,也就是要去执行中断函数了,主函数的事要暂停不做先,执行完中断函数之后继续回到主函数做我们的事。可是又过了5分钟闹钟又响了,没办法,我们又要放停自己的事去执行中断函数了,当然闹钟是可以关闭的,这就相当于是把中断函数的触发开关给断开了。


2.溢出

我们知道秒表计时到59秒的时候,再过1秒就变成了00。同理,当我们的unsigned char类型的变量的数值为255时,再加1就变为0了, unsigned int的变量如果此时的值为65535,后面再加1也同样成为0,这些都叫溢出。

再举一个例子来理解定时器溢出概念,中学时我们做过一些化学实验,其中有一种容器叫做试管,如果试管是空的,我们用一个导管往试管里加水,导管的水流流速是均匀不变的,试管里的水要想溢出,需要的是x个单位的时间,如果我们想把距离溢出的时间缩短为一半,那我们提前把试管里的水装满到一半,这样就可以改变了溢出时间。

通过这个例子我们就可以明白,要想确定好定时器溢出产生中断的间隔时间,我们就要往这个“试管”提前装好合适的水量。

我们下一讲再继续讲解这个“试管”!


本文固定URL:https://www.dotcpp.com/course/371

下一课:

定时器工作模式

单片机教程
第一章 单片机入门
第二章 LED及入门
第三章 蜂鸣器
第四章 数码管
第五章 独立按键
第六章 多文件编程
第七章 外部中断
第八章 定时器
第九章 舵机与超声波模块
第十章 串口通信
第十一章 1602液晶屏
第十二章 IIC通信
第十三章 红外遥控与温度传感器
第十四章 AD与DA
第十五章 混合例程
第十六章 完结
Dotcpp在线编译      (登录可减少运行等待时间)