单片机必须了解的外设功能——定时器/中断功能
上一期《单片机必须了解的外设功能——GPIO/串行通信》中,我们了解了单片机的外设功能的结构和使用方法,本文主要介绍单片机必须了解的定时器中断功能。
本连载将以搭载了瑞萨电子的单片机--RX63N的电路板"GR-SAKURA"为例进行说明,请你也实际操作试试看!一手包办有关时间和时刻的处理!
在单片机中,不仅频繁地使用"○月○日○点○分"这种时刻显示,显示过去的时间和一定的周期这种形式也被频繁地使用。例如,"该程序从运行开始过去了多少时间?"、"每秒输送128次信号"等等。另外,还经常被用于"等待指定的时间"、"经过指定的时间后将转移到下一个处理"这样的情况。对这些与时间和时刻有关进行处理的外设功能就是定时器(图1)。
我们也可以不使用外设功能(硬件)的定时器,而是通过软件来计算时间。下面通过图2来说明使用软件来定时的示例,图中假设循环(重复)部分的处理需要费时1μs(微秒:100万分之1秒)。由此可以计算出该循环部分重复1000次需要花费1ms(毫秒:千分之1秒),重复100万次则需费时1秒。即:通过"等待经过循环处理所指定的时间"来计算时间。但是,CPU将会集中进行时间计算的处理而无法进行其他处理。而且,只能计算一个周期的时间。而现实当中,单片机需要对应0.1秒和1/1024秒等各种周期的时间。
另外,CPU的计时器频率(驱动速度)也将对软件产生影响。如果将100MHz驱动的CPU改为50MHz,那么循环1次所需的时间将变为原来的两倍。因此,需要对计算时间的软件进行修正。如上所述,由于在管理上既花时间又容易出错,所以要极力避免通过软件来计算时间。
稍微介绍一下中断的内容……
下面,我们简单介绍一下和定时器不可分割的技术——"中断功能"。单片机中的"中断功能"是指某个程序在执行过程中,因某种原因而发出"开始进行其他处理"的请求。由于可以使用中断功能,所以可使CPU不集中进行一个处理。
让我们想象一下日常生活中用到"中断功能"的情景,当我们把热水倒入方便面盒中后,如果我们在3分钟内一直盯着时钟看,那么这段时间内我们就不能做其它事情。但如果用厨房定时器设定3分钟的时间,在厨房定时器的警报响起之前我们便可以去做其它事情。在这个例子中,"一直盯着时钟看"就相当于前一节中所介绍的"等待经过循环处理所指定的时间",所以在处理结束之前不能去做其它事情。同时,厨房定时器的警报就相当于中断功能。在中断发生前还可以去做其它事情。
单片机的外设功能中有各种各样的定时器,这些定时器在经过指定的时间或处理结束时向CPU发送中断信号。不仅是定时器,很多外设功能都会在"产生变化"、"处理开始/结束"时将中断信息传送给CPU。所以,CPU在中断功能发生前还可以继续做其它工作,因此可提高作业效率。关于中断功能的详细内容,将在本系列第4期的《外部中断功能IRQ》中做详细介绍。本期中,我们先事先了解一下"从外设功能以中断的形式向CPU传送信息"的内容。
各式各样的定时器中,还有"看门狗定时器"!
在单片机的外设功能中,最贴心的定时器是计算到指定时间的定时器和每隔一段时间便发生中断的定时器。另外,在瑞萨电子的RX63N单片机中,搭载了为控制伺服电动机而产生脉宽调制解调(PWM)信号的定时器、计算输入信号间隔的定时器、显示现在时刻的RTC(实时时钟)等各种各样的定时器。
在定时器中,最具特色的是WDT(看门狗定时器)。其名字Watch Dog Time中的Watch dog意思为"看门狗",它的工作就是监视程序是否出现失控。由WDT监视的程序通过事先将设定的值写入WDT后启动。WDT每隔一定时间便减掉写入的值,当程序正常运行时,处理结束前会对WDT清零再结束。但是,如果程序失控(进入意料之外的重复状态且无法停止)时,写入WDT的值将小于0(称为下溢),因此向CPU通知程序出现了失控。在不允许睡眠的重要系统中,单片机中搭载的"看门狗定时器"―WDT发挥了极其重要的作用。
轻松尝试使用定时器
虽然说:"我们就通过程序来实际使用定时器……",但是实际上,要想熟练运用定时器,必须先理解单片机的操作步骤。而且,不仅需要了解通过软件进行操作的步骤,还需理解单片机的硬件(结构)以及所使用的零部件的规格等。
因此,需要帮助时请使用"数据库"。对于搭载了RX63N单片机的GR-SAKURA电路板,我们准备了几个与时间和时刻有关的数据库。
SAKURA 的sketch参数:樱花程序库时间(仅英文版)
在这个程序中,要让GR-SAKURA上的L
- 如何设计一套简单、准确调光汽车照明系统(04-26)
- LED未来前景分析,基于555定时器设计的LED控制电路分析(04-18)
- 半导体巨星陨落,555定时器发明者Hans Camenzind逝世(07-16)
- 基于FPGA的洗衣机控制系统的设计与实现(07-27)
- 详解基于555定时器的电容测试仪设计(09-09)
- 振荡电路的工作原理及其特性,附设计集锦(11-28)