对LPC定时器与时间相关的寄存器有PC,PR,TC,MR。
PC--------预分频计数寄存器
PR--------预分频寄存器
TC--------定时计数寄存器
MR--------匹配寄存器
TCR-------定时器/计数器控制寄存器
if(PR == PC)
{
PC = 0;
TC += 1;
}
if{TC == MR}
{
根据MCR的设置进行相应的动作:
1,定时器产生中断
2,TC = 0即TC清零
3,停止定时器TC,PC停止,TCR[0] = 0;即停止定时器/计数器。
}
LPC中的定时器只能向上计数,即从0开始计数。
PC每个PCLK 周期加1 。当其值到达预分频寄存器中保存的值时,定时器计数器 TC加1 ,预分频计数器在下个PCLK 周期复位。例如,当PR=0 时,定时器计数器每个 PCLK 周期加1 ,当 PR=1 时定时器计数器每 2 个PCLK 周期加1 ,以此类推。
根据文档描述“当PR=0 时,定时器计数器每个 PCLK 周期加1”这说明对PCLK进行了分频,这就说明了PR为什么叫做预分频寄存器的原因了。但是如果定时器的PCLK是24MHz的,按理说PR=0时,应是12MHZ,但是从示波器上来看好像不是不知为什么?但是对于毫秒的定时,按照文档说明的推理和现实示波器的测了是准确无误的。
定时时间 = PCLK / (2PR); 为什么乘2呢?是因为分频的原因,不要忘记当PR=0时也是有分频作用的哦!
关键字:LPC 定时器
引用地址:
LPC 学习笔记之定时器
推荐阅读最新更新时间:2024-03-16 15:03
stm8s 定时器1 延时_STM8S_库函数_定时器自动装载TIM1
这里说下使用库函数方式控制STM8S103F3P6片上的定时器1,也就是TIM1,这是个高级定时器。 首先,咱们看一下STM8S103F3P6上有几个定时器,打开数据手册,可以看到如下内容: 可以看到,咱们使用的单片机,有三个定时器:TIM1、TIM2、TIM4。而TIM1是一个高级控制定时器。具体有多高级,咱们看下介绍。由于内容比较多,我这里直接放数据手册里的截图: 可以看到,TIM1的功能是非常丰富的,从基本的定时、自动装载、PWM输出、输入捕获、输出比较、单脉冲输出到各种事件的中断,都有相应的功能。 稍后的几节内容,会依次展示三个例程: 1、自动装载计时 2、测量输入信号的脉冲宽度 3、输出PW
[单片机]
555定时器芯片实现单片机看门狗电路
1、程序跑飞现象 随着单片机在能源领域中的广泛应用,单片机的抗干扰问题越来越突出,煤矿井下环境一般比较恶劣,这便会为单片机控制系统带来各种干扰,以致系统不能正常工作。单片机应用系统的抗干扰性能主要取决于硬件的抗干扰设计,但软件 抗干扰设计作为硬件抗干扰的完善和补充,作用也非常重要,因为大量的干扰通常并不能影响系统内硬件的运作,却常会使系统的软件无法正常运行,单片机应用的一个突出问题,便是单片机运行过程中经常出现的程序跑飞现象。 在单片机系统中,因为干扰的原因,在非预期的情况下,使得程序计数器PC 的值发生随机的变化,从而使得程序的流向指向不确定区域,这便是程序的跑飞。程序跑飞后或者会使指令的地址码和操作码发生改变,PC 把操作数当作
[单片机]
定时器0延时程序
本程序主要实现的是用DA指令进行10进制调整,使得两位数码管循环显示0-99,延时1s。 (1):工作方式0下延时1s 查询方式: ORG 0000H JMP MAIN ORG 30H MAIN: MOV TMOD,#00H ;设置TIMER0工作在MODE0 MOV R4,#00H ;设置数码管显示初值 ;SETB EA ;SETB ET0 START: MOV R2,#200 ;延时1s MOV P2,R4 ;计数初值送P2显示 LCALL DELAY XCH A,R4 ADD A,#01H DA A ;R4送A累加,并做十进
[单片机]
STM8定时器实现精准延时(阻塞)
定时器选择: stm8定时器与stm32定时器略有不同,stm32定时器是24位--16,777,216,按照72M时钟8分频计算,周期达到1.86s左右,而stm8定时器是16/8--位65535/255,自身时钟为16M,即使16分频周期也远小于1s。 当前选择TIM2定时器,1分频,最大周期65536/16 约等于 4096us。 初始化 void TIM_Delay_Init() { /* 自动重装载值范围TIM4为0~255,TIM2为0~65535*/ TIM2_TimeBaseInit(TIM2_PRESCALER_1,65535); //65535*(1/16)≈4095us TIM2_Cmd(
[单片机]
超详细的单片机交通信号灯控制程序
利用定时器计时,注释非常详细,可自己改变定时时间。 单片机源程序如下: #include reg52.h #define GPIO_TRAFFIC P2 #define GPIO_DIG P0 typedef unsigned char u8; typedef unsigned int u16; //3-8译码器引脚位定义 sbit LSA = P1^0; sbit LSB = P1^1; sbit LSC = P1^2; //交通信号灯南北方向控制引脚位定义 sbit GREEN10 = P2^0; sbit RED10 = P2^1; sbit GREEN11 = P2^2; sbit YELLOW11 = P2^3
[单片机]
STM32通用定时器使用
STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。(TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟由APB2的输出产生;TIM2-TIM5是普通定时器;TIM6和TIM7是基本定时器,其时钟由APB1输出产生) 本实验要实现的功能是:用普通定时器TIM2每一秒发生一次更新事件,进入中断服务程序翻转LED1的状态。 预备知识: ① STM32通用定时器TIM2是16位自动重装载计数器。 ② 向上计数模式:从0开始计数,计到自动装载寄存器(TIMx_ARR)中的数值时,清0,依次循环。 需要弄清楚的两个问题: 1.
[单片机]
STM8L052定时器1配置30S
@ STM8L TIM1相关配置 Tim1基本介绍 TIM1由一个由可编程预分频器驱动的16位上下自动重载计数器组成。定时器可用于多种用途,包括: •时基生成 •测量输入信号的脉冲长度(输入捕获) •生成输出波形(输出比较,PWM和单脉冲模式) •各种事件的中断功能(捕获,比较,溢出,中断,触发) •捕获,比较,溢出事件的DMA请求功能 •与其他定时器或外部信号同步(外部时钟,复位,触发可校准)。 该定时器非常适用于各种控制应用,包括那些需要具有互补输出和死区时间插入的中心对齐PWM功能的应用。 定时器时钟可以来自内部时钟,也可以来自可通过配置寄存器选择的外部源。 配置 以下代码 自己配置了一个30S定时器,使用系统内部高
[单片机]
MSP430笔记4——定时器
定时器Timer_A(TA) 基本寄存器 TA控制寄存器 TACTL TASSELx:时钟源选择(TACLK00 ACLK01 SMCLK10 ~TACLK11) IDx:第一次分频控制(ID0一分频 ID1二分频 ID2四分频 ID3八分频) MC:工作模式控制(停止00 增01 连续10 增减11) TACLR:定时器清零,复位TA寄存器、时钟分频和计数方向;会自动复位并置0 TAIE:定时器中断使能(0中断禁止 1中断允许) TAIFG:中断标志位(0没有中断 1有中断挂起) 计数值存放寄存器TAR 扩展寄存器TAEX0 控制时钟源的二次分频,000-111表示1-8分频 捕获/比较寄存器 TACCR0-TACC
[单片机]