LPC2103学习之定时器0和定时器1

发布者:JoyfulLife最新更新时间:2016-04-22 来源: eefocus关键字:LPC2103  定时器0  定时器1 手机看文章 扫描二维码
随时随地手机看文章
这两天学习LPC2103的定时器。开始看前面的寄存器介绍看的有点头晕,一会儿就搞混了。不过当我看到后面用图片描述定时器相关寄存器操作时,一下就明了了。知道应用再看原理后比较明了。 

 

为什么把这两个定时器放到一起,因为它们都是32位的定时器,它们除了外设基地址不同外,其他都相同。

说说这两个定时器的特性

1.两个32位定时器定时器/计数器各含有一个可编程的32位预分频器;

2.计数器或定时器操作;

3.定时器0有3路、定时器1有4路捕获通道。当输入信号跳变时可取得定时器的瞬时值,也可选择使捕获事件产生中断;

4.每个定时器共有4个32位匹配寄存器,匹配时的动作有下面三种:

匹配时定时器继续工作,可选择产生中断。

匹配时定时器停止工作,可选择产生中断。

匹配时复位定时器,可选择产生中断。

5.定时器0有3个、定时器1有4个对应于匹配寄存器的外部输出,匹配时的输出有如下4种:

匹配时设置为低电平

匹配时设置为高电平

匹配时翻转

匹配时无动作

6.对于每个定时器,多达4个匹配寄存器可配置为PWM,允许使用多达3个匹配输出作为单边沿控制的PWM输出。

 

如果接下来就是说一大推寄存器的话,肯定犯困。我开始就是从头开始看那么多寄存器看的犯晕。但是换个方式,从定时器应用出发,再来细看定时器寄存器,一下子会豁然开朗不少。

 

就定时器的应用来说,一共有3个。一是单纯的作为定时器,二是作为比较匹配。三就是定时器用作捕获功能。

 

先看看定时器用作定时功能时寄存器的模块图

1.32位定时器TC的计数频率由Fpclk经过预分频计数器得到

2.定时器的启动/停止、计数复位由TCR控制

3.需要注意的是,定时器溢出不会产生中断,定时器的中断是由捕获事件或匹配事件引发的,所以上图最后那根线是虚线。

 

再看定时器用作比较匹配时的寄存器框图

1.定时器的比较匹配功能由寄存器MCR进行控制

2.MR0~3存放的是四路比较匹配通道的比较值

3.当发生匹配时,按照MCR设置的方法产生中断或复位TC等

4发生匹配时,EMR控制匹配引脚输出——高电平、低电平、引脚电平翻转等。

 

最后是定时器用作捕获功能时寄存器的框图

1.定时器的捕获功能由寄存器CCR进行控制

2.通过CCR寄存器,捕获事件可以设定为上升沿触发,下降沿触发、双边沿触发

3.通过CCR寄存器,可以设定当捕获事件发生时,是否产生中断

4.CR0~3为4路捕获寄存器,保存对应的捕获值

 

看见以上的定时器的三个功能,操作方法自然也大概明了了:

1.计算定时器的时钟频率,设置PR寄存器进行分频工作

2.若使用匹配功能,则需配置匹配通道的初值及其工作模式;若使用捕获功能时,需设置捕获功能相关的寄存器。

3.如果要使用到定时器中断,则需设置VIC,使能中断。、

4.最后设置TCR,启动定时器。

定时器计数时钟频率如下:

                      计数时钟频率 = Fpclk  / (N+1)

N为PR的值

 

知道一个大概,然后再看具体的寄存器,我是觉得这样比较好些。

先是寄存器汇总,看看关于定时器0与定时器1总共有多少个寄存器:

下面分类介绍寄存器。先说基本的寄存器:

1.中断标志寄存器(T0IR、T1IR)

包含4个用于匹配中断的标志位,4个用于捕获中断的标志位。具体描述如下图,如果有中断产生,则相应寄存器位置1,否则为0.向相应标志位写1会清除该中断标志位,写0无效。

2.定时器控制寄存器(T0CR、T1CR)

该寄存器用于控制定时器计数器的操作。

3.定时器计数器(T0TC、T1TC)

当预分频的计数器到达计数的上限时,32位定时器计数器TC加1。如下图所示,如果TC到达计数上限之前没有被复位,它会一直计数到0XFFFFFFFF然后翻转到0X00000000,该事件不会产生中断。如果需要,可以用匹配寄存器检测溢出。

4.预分频寄存器(T0PR、T1PR)

32位预分频寄存器指定了预分频计数器的最大值

5.预分频计数器寄存器(T0PC、T1PC)

预分频计数器使用某个常量来控制Pclk的分频,可实现控制定时器分辨率和定时器溢出之间的关系。预分频计数器每个Pclk周期加1,当达到预分频寄存器中保存的值时,定时器计数器加1,预分频计数器在下个Pclk周期复位。当PR=0时,

定时器计数器每个Pclk加1,;当PR=1时,定时器计数器每2个Pclk周期加1,如下图所示。

 

下面介绍第二部分寄存器,匹配功能寄存器组。

匹配功能寄存器组包括匹配寄存器、匹配控制寄存器和外部匹配寄存器。其中,匹配寄存器用来存放定时器的匹配值,发生匹配事件时,匹配控制寄存器用来设置定时器的工作。而外部匹配寄存器则用来设置匹配输出引脚的动作。

1.匹配寄存器(MR0~MR3)

匹配寄存器连续与定时器计数值(TC)相比较,当两个值相等时,则自动触发产生中断,复位定时器计数器或停止计数器,执行的动作由MCR寄存器控制。

2.匹配控制寄存器(T0MCR、T1MCR)

控制匹配发生时定时器进行的操作。

3.外部匹配寄存器(T0EMR,T1EMR)

外部匹配寄存器提供外部匹配引脚MATn.0~MATn.3(n为0或1)的控制和状态。当匹配输出为PWM输出时,外部匹配寄存器的功能由PWM决定。

 

下面介绍的是捕获功能寄存器组

它包括:捕获寄存器和捕获控制寄存器。其中捕获控制寄存器用来设置捕获信号,发生捕获事件时,定时器的计数值保存到捕获寄存器中。

1.捕获寄存器(CR0~CR3)

每个捕获寄存器都与一个器件管脚相关联。当管脚发生特定的事件时,可将定时器计数值装入该寄存器,捕获控制寄存器的设定决定捕获功能是否使能以及捕获事件在管脚的上升沿、下降沿或是双边沿发生。

2.捕获控制寄存器

功能有:

设置捕获事件发生的位置,上升沿,下降沿还是上升沿+下降沿

捕获事件发生时,是否产生中断。

下图寄存器描述中,'n'代表定时器的编号0或1,每路捕获功能,都是由三个位控制的。

最后剩下的就是一些跟定时器0和1有关的其他寄存器

1.计数控制寄存器(T0CTR、T1CTR)

计数控制寄存器用来选择定时模式还是计数模式,同时在计数模式下,用来选择引脚和选择边沿计数(上升沿还是下降沿)

选择计数模式后,捕获输入引脚(由CTCR[3:2]来选择)在每个Pclk的上升沿采样。在比较两个连续的捕获输入引脚采样值之后,将会识别为上升沿、下降沿。边沿的任一种或捕获输入引脚的电平有没有变化。只有CTCR[1:0]设置的事件被识别后,定时计数器才会增加。

给计数器提供的外部时钟有些限制。因为需要连续两个Pclk的上升沿才能识别一个捕获输入引脚的变化,捕获输入引脚的输入频率不能超过Pclk的1/2,这种情况下,高/低电平的持续时间必须不小于1/Pclk。

2.PWM控制寄存器(PWM0CON,PWM1CON)

此寄存器用来控制匹配输出为PWM输出。每个匹配输出可独立的设置为PWM输出。对于每个定时器,最多可以选择3个单边沿PWM输出在MATn.2:0上。另外一个匹配寄存器用来决定PWM输出的周期,当其他任何一个匹配寄存器发生匹配时,PWM输出将置为高电平。定时器可被选择作为PWM周期的匹配寄存器复位。当定时器复位为0时,所有PWM的输出将会置为低电平。

下面是单边沿控制PWM输出的规则:

1.除了在匹配值为0的情况之外,每个PWM周期的开始,所有控制的PWM输出为低(此时定时器设置为0)

2.匹配寄存器发生匹配时,相关的PWM输出将会置高。如果没有匹配发生(例如,匹配值大于PWM周期),PWM输出将会一直输出低电平

3.如果匹配寄存器的值大于PWM输出周期,且PWM的输出为高电平,则在定时器复位时,PWM输出将会被清零。

4.如果有一个匹配寄存器的值跟PWM周期值一样,则在下一个时钟PWM周期计数时钟之后将会复位,因此,一个PWM将由一个时钟宽度的高电平组成,宽度由PWM的计数时钟决定。

5.如果一个匹配寄存器的值为0,则第一次的PWM输出为高电平。同时在定时器复位之后还将一直保持高电平。

 

接着说明关于定时器的中断。

LPC2103有两个32位定时器,每个定时器可以产生8种类型的中断。4路匹配中断、4路捕获中断,可以读取中断标志寄存器(TnIR)来区分中断类型。下图是定时器中断与向量中断控制器(VIC)的关系

1.匹配中断

LPC2103定时器溢出不会产生中断,但匹配可以产生中断。每个定时器都有4个匹配寄存器,存放匹配值。当定时器的计数值TC等于MR时,就可以产生中断。切寄存器TnMCR控制匹配中断的使能。下图就是以定时器0为例的匹配中断说明:

2.捕获中断

当定时器的捕获引脚CAP上出现特定捕获信号时,可以产生中断。下图以CAP0.0为例说明:

 

以上就是定时器0和定时器1的全部内容了,感觉LPC2103的定时器还是蛮强大的。下来做个简易的频率计巩固这节的知识。大笑

 

参考《EasyARM2103教材》

关键字:LPC2103  定时器0  定时器1 引用地址:LPC2103学习之定时器0和定时器1

上一篇:LPC2103学习之PLL
下一篇:LPC2103学习之外部中断

推荐阅读最新更新时间:2024-03-16 14:51

单片机定时器0工作模式1
51单片机的定时器0工作模式1(16位模式),外中断INT0(P3_2引脚)控制T0(P3_4引脚)的按键信号,按键(P3_4引脚)作为T0时钟信号输入定时器0。若是INT0为1,则按键的状态(不断的按下然后抬起按键),使定时/计数器0计数,溢出中断引起P2.0引脚相连的LED灯闪烁。 //本程序出自:51hei单片机网 #include "reg_c51.h" unsigned char hex ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0x88,0x83,0xC6,0xA1,0x86,0x8E}; //数码管十六进制译码表 void main(void) { TMO
[单片机]
STM32L0开发笔记6: STM32CubeMX中定时器的配置方法
本文介绍在STM32CubeMX进行定时器的配置,产生固定时间中断的方法,以TIM2为例,步骤如下: 1、使能TIM2,指定时钟源。 2、查看数据手册,确定该定时器的内部数据总线,本文所引用的定时器内部数据总线为APB1。 3、在时钟配置中确认所选定时器的内部数据总线的时钟频率,我这里是32MHz。 4、在配置页中,选中相应的时钟,在Prescaler中输入预分频系数,在Counter Period中输入溢出系数。例如,本例中时钟为32MHz/32=1MHz,也就是一个周期为1us,我选择溢出系数为1000,则产生中断的时间为1ms。在Prescaler中输入总线频率的整数部分,可以轻易得到1us的
[单片机]
STM32F1系列基本定时器HAL库配置
时钟的概念了解完就趁热打铁进行定时器的简单讲解,定时器的操作是十分重要的,他不仅可以用于计数/定时(两者其实一个道理),还可以生成PWM,输入捕获等等,高级定时器可以用于工业电机上的有关操作。所以,我们专门讲解一波基本定时器,并用它做一个闪烁灯小实验。 定时器简介 在STM32F1上,常规定时器分为三种定时器:高级,通用,基本; 高级定时器的功能涵盖通用定时器,通用定时器功能涵盖基本定时器 以基本定时器实现计数功能,这里说的并不准确,应该说是定时功能, 定时是对周期固定的脉冲信号进行计数如APB(MCU的外设时钟APB),而计数是对周期不确定(可能固定也可能不固定)的脉冲信号进行计数。 更为深入的比喻:就是水杯中装水的
[单片机]
STM32F<font color='red'>1</font>系列基本<font color='red'>定时器</font>HAL库配置
单片机实例---定时器控制点阵显示0~9
显示状态:点阵上每隔1s显示一个数字,显示到9又重头显示不断循环 #include reg52.h #include intrins.h typedef unsigned int u16; typedef unsigned char u8; u8 flag=0; //时间标志位 #define lie_io P0 //定义P0端口 sbit RCLKK = P3^5; sbit SRCLK = P3^6; sbit SER = P3^4; //串行输入 unsigned char code lie = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; un
[单片机]
ARM之定时器0(中断)
这也是一个很简单的程序,主要是应用ARM实现定时1秒中断的小程序,主要说明ARM7中中断的用法。 程序如下: #include LPC213x.H #define L5_Communicatin_Flag (1 28) //定义P0.28脚 /**************************************************************************** * 名称:IRQ_Time0() * 功能:定时器0中断服务程序,取反BEEPCON控制口。 * 入口参数:无 * 出口参数:无 ****************************************************
[单片机]
MSP430定时器A 输出1KHz的PWM方波
简介:输出模式0 输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。 定时器A输出方波 1、定时器的PWM输出8种模式 输出模式0输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。 输出模式1置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另一种输出模式为止。 输出模式2PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的值等于CCR0时复位。 输出模式3PWM置位/复位模式:输出在TAR的值等于
[单片机]
MSP430<font color='red'>定时器</font>A 输出<font color='red'>1</font>KHz的PWM方波
msp430f5438定时器1s的程序
void time_init_1s() { TA1CCTL0 = CCIE; // CCR0 interrupt enabled TA1CCR0 = 16383; TA1CTL = TASSEL_1 + MC_1 + TACLR; // ACLK, Up to CCR0 , clear TAR } //中断服务程序 #pragma vector=TIMER1_A0_VECTOR __interrupt void TIMER1_A0_ISR(void) { P5OUT ^=BIT4; TA1CCR0 += 16383; // Add Offset to CCR
[单片机]
LPC2103之中断向量控制器
LPC2103的PWM编程 1. 在PINSEL0/1寄存器中设置好需要输出PWM波的管脚功能; 2. CTCR寄存器设置为定时器模式(默认复位值即可); 3. 开启PWMCON中相应的MAT位输出PWM功能; 4. 设置PWM定时时间和占空比等参数: 1) 设置PR寄存器值,即PCLK分频系数,分频后时钟作为TC的计数时钟; 2) 设置匹配寄存器值,需要设置两个匹配寄存器值,假设MR0为PWM输出匹配寄存器,那么需要设置该寄存器计数值,其次,还需要在MR1/2/3中任选一个作为匹配后复位,也就是说,MR1/2/3的值要大于MR0的值。在PWM运行时,初始PWM输出为0,当TC和MR0匹配则PWM输出1,
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved