定时器中断
由单片机中的定时器溢出而申请的中断
定时器中断是由单片机中的定时器溢出而申请的中断。51单片机中有两个定时器T0和T1。STM32中共有11个定时器。
产品参数
定时器中断是由单片机中的定时器溢出而申请的中断。
51单片机中有两个定时器T0和T1:
TF0:定时器T0溢出中断请求。当定时器TO产生溢出时,TO中断请求标志TF0置1,请求中断处理。
TF1:定时器T1溢出中断请求。当定时器Tl产生溢出时,T1中断请求标志TF1置1,请求中断处理。
Stm32共有11个定时器:
1.两个高级定时器:TIM1、TIM8-------------------------APB2
2.四个通用定时器:TIM2~TIM5-------------------------APB1
3.两个基本定时器:TIM6、TIM7-------------------------APB1
4.两个看门狗
5.一个系统嘀嗒定时器(SysTick)
定时/计数器
定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。
TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。
TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。
中断
所谓中断就是程序执行的正常的时候,出现了突发事件,CPU停止当前的程序的执行,转去处理突发事件,处理完毕后又返回原程序被中断的位置继续执行。
中断可以被分为内部中断和外部中断,内部中断的来源来自CPU内部(软件中断指令,溢出,除法错误等,例如操作系统从用户态切换到内核态需借助CPU内部的软件中断),外部中断的中断源来自CPU外部,由外设提出请求。
中断过程
一个完整的中断传送方式的处理过程应包括中断请求中断优先权判别、中断响应中断处理中断返回等几个步骤。
中断源
(1)INTO:外部中断0请求,由P3.2引脚输入。它有两种触发方式,通过IT0(TCON.O)来决定是电平触发方式还是边沿触发方式。一旦输入信号有效,则向CPU申请中断,并且将中断标志IEO置1。
(2)INT1:外部中断1请求,由P3.3引脚输入。通过IT1(TCON.2)来决定是电平触发方式还是边沿触发方式。一旦输入信号有效,则向CPU申请中断,并将中断标志IE1置1。
(3)TF0:定时器T0溢出中断请求。当定时器TO产生溢出时,TO中断请求标志TF0置1,请求中断处理。
(4)TF1:定时器T1溢出中断请求。当定时器Tl产生溢出时,T1中断请求标志TF1置1,请求中断处理。
(5)TI/RI:串行口发送/接收中断请求。当通过串行口发送或接收完一帧串行数据时,串行口中断请求标志TI或RI置1,请求中断处理。
工作流程
定时器工作的流程可以按照这个顺序(以51为例用定时器0方式一产生50毫秒的定时)
1、确定使用哪个定时器,使用哪种方式,这一步通过TMOD设置,TMOD的低四位是设置定时器0的,高四位是用来设置定时器1的,其中的M0,M1是用来设置定时器工作在哪种方式,GATE一般用不要设置,C/T是选择计数模式还是定时模式的,如:TMOD = 0X01,就说明定时器0工作在方式1。
2、接下来就要设置定时的时间,用定时器定时50毫秒,可以用这种方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以这样理解:因为这是定时器的初值,也就是说计数脉冲就是在这个数的基础上向上递增,到达65535后就溢出产生中断。
3、第三步打开中断,使用IE寄存器,首先打开总中断EA = 1,这一步是所有中断所必须的,然后打开定时器0中断,ET0 =1。
4、这时准备工作结束,启动定时器,使用TCON寄存器,TR0 = 1,实现了一个50毫秒的定时。
参考资料
最新修订时间:2022-08-25 18:35
目录
概述
产品参数
参考资料