PIC16 定时器与晶振计算

发布者:bullfish最新更新时间:2016-08-26 来源: eefocus关键字:PIC16  定时器  晶振计算 手机看文章 扫描二维码
随时随地手机看文章
PIC16 定时器与晶振计算

T=(256-A)*(4/F)*分频比
T:是你要设定的时间.
A:是对应要赋的值(就是我要得到的值).

F:晶振频率
Tmax=256*(4/F)*分频比max
T:单位是US
1S=1000MS=1000000US

分频器一般都是跟计数单元一起结合使用。

预分频比是在计数单元值发生变化之前起作用(假如不用预分频时,计数器在每个上升沿到来时加1,而现在使用分频比为1:2的预分频器的话,那么必须等到两个上升沿的到来,计数器才会加1)

后分频器与预分频器功能一样,只不过是在计数器值发生改变后起作用。像TMR2的后分频器,如果不使用,计数器一但发生溢出,将立即置位标志为TMR2IF,但是如果有1:2的后分频器的话,必须两次溢出后才会置位。


关于PIC单片机的定时器精准计时的计算
 

    在此用了16C711单片机的TMR0做定时中断,希望实现精准计时,在程序中,TMR0用了晶振的32分频,初值#0FCH,因此POPBEAR兄弟计 算出每个定时中断的计时时间为(256-X)*32*4/32768=0.015625秒。注意,问题就在这里!实际上这个时间是TMR0的初值被置入后 两个指令周期后(见PIC单片机定时器/计数器资料)到下一次中断发生时的时间。如果要用到定时器的精准定时,必须理解这一概念!

    如采用32768Hz的晶振,每个指令周期为122us,在中断处理程序中,到TMR0的初值被置入,共有7条指令,加上TMR0的初值被置入后两个指令 周期,如果中断处理程序不直接放在0004H地址而采用GOTO指令的两个周期,一共为11个指令周期。也就是说,每个定时中断发生的间隔为 0.015625秒+11*122us。程序中64次中断为1秒,那么1秒误差为64*11*122us=85.9375ms,1分钟的误差为 5.156s。


那么怎样得到精准计时呢?这就要在对定时器的初值赋值上和中断处理程序中做文章。


关键字:PIC16  定时器  晶振计算 引用地址:PIC16 定时器与晶振计算

上一篇:PIC常见问题14问
下一篇:pic单片机常用1s延时子程序

推荐阅读最新更新时间:2024-03-16 15:07

1.5.6_定时器中断程序示例
通过S3C2440内部的定时器,可以产生稳定的定时器中断,示例程序为每0.5s产生一次中断,在中断中循环点亮小灯。 首先,S3C2440内部的定时器运行示意图如下: 每来一个时钟脉冲,TCNTn的计数值就会减1。从定时器操作示意图可以看出,只在TCNTn降到0时,才发生中断,在TCNTn = TCMPn时,可以发生输出引脚输出变化,这可以用来输出不同占空比的PWM波。 定时器的时钟源是PCLK,PCLK经过8位的预分频和多路选择器,将时钟供给定时器。 设置Timer主要就步骤: 设置时钟; 设置初值; 加载初值,启动timer; 设置为自动加载; 设置中断相关。 具体的寄存器操作,查看S3C2440第十章的寄存
[单片机]
1.5.6_<font color='red'>定时器</font>中断程序示例
STM8S003F3使用总结——定时器
STM8S003F3有三个定时器,分别为16位高级定时器TIM1、16位通用定时器TIM2和8位基础定时器TIM4。其中,TIM1和TIM2支持PWM输出,本项目中用到了TIM1-CH1和TIM2-CH1两个通道作为PWM输出,以及TIM4作为时基,下面进入正文。 编译环境:IAR for STM8 3.10.2 库版本:V2.2.0 1.定时器 关于定时器没什么好说的,直接看下配置代码 void TIM1_Init(u16 psc, u16 arr, u16 duty) { TIM1_TimeBaseInit(psc, TIM1_COUNTERMODE_UP, arr, 0); TIM1_OC1Init(T
[单片机]
STM8S003F3使用总结——<font color='red'>定时器</font>
C51编程16-中断篇(定时器中断3)
使用定时器/计数器中断,需要将满足以下的条件。 1)中断总允许打开 EA = 1; 2)中断源允许打开 ET0 = 1或者 ET1= 1; 3)设置定时器计/计数器的工作方式(设置TMOD) 4)装载定时器,设置计数器的初始计算值。 5)开启定时器(TCON中的TR0 = 1或者TR1 = 1) 6)中断服务函数 通过前面一些中断文章的学习,相信除了上面的第4点外,使用定时器/计数器已经没什么难度了。 装载定时器,前面的定时器章节可以知道,定时器/计数器有4种方式。它们分别是13位手动装载(方式0)、16位手动装载(方式1)、8位自动重装(方式2)、8位手动装载(方式3)。根
[单片机]
C51编程16-中断篇(<font color='red'>定时器</font>中断3)
STM32关于使用定时器触发ADC转换的解决办法和详细说明
以STM32 ADC的常规通道为例(注入通道类似): 如上图,STM32 ADC的常规通道可以由以上6个信号触发任何一个,我们以使用TIM2_CH2触发ADC1,独立模式,每次仅测一条通道,则ADC的配置如下:(以下代码使用STM32固件库V3.5) void ADC_Configuration(void) { ADC_InitTypeDef ADC_InitStructure; ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; //关闭通道扫描模式 ADC_InitStructur
[单片机]
STM32关于使用<font color='red'>定时器</font>触发ADC转换的解决办法和详细说明
PIC12F508单片机学习之一—定时器
PIC12F508单片机是没有中断的,定时器只能是查询方式。 编译器用的XC8,编译环境IDE用的是MPLAB X IDE。 //*************************************************** // __________________ // VDD-| 1 8 |-VSS // GP5-| 2 27 |-GP0/DAT // GP4-| 3 26 |-GP1/CLK //GP3/RMCLR--| 4 25 |-GP2 // |________________| //
[单片机]
对8051两个定时器(timer0和timer1)的使用解析
1.如何使用8051单片机内部的定时器timer0? #include STC89C5xRC.h void delay(int n) { int i; TMOD=0x01;//16bits for(i=0;i n;i++) { TH0=0x3C; TL0=0xB0; //12MHZ - 1MHZ - 0.05s=5*10^-2s - (5*10^-2)/(1*10^-6)=5*10^4 //65536-50000=15536=3CB0H TF0=0; TR0=1;//start the intern
[单片机]
STM32 定时器输出 PWM
我们通过TIM3 输出PWM 去驱动 SG90电机 配置如下 1.GPIO结构体 2.配置通用定时器结构体 3.配置定时去输出PWM结构体 4.打开时钟 — GPIO时钟,TIM定时器时钟,部分重映射时钟 5.配置PWM比较值 一 我们使用定时器3 通道2 重映射之后为PB5 GPIO_InitTypeDef GPIO_motorstruct; GPIO_motorstruct.GPIO_Mode =GPIO_Mode_AF_PP; GPIO_motorstruct.GPIO_Pin = GPIO_Pin_5; GPIO_motorstruct.GPIO_Speed =GPIO_Speed_50M
[单片机]
51单片机定时器和计数器
8051单片机内部有两个定时/计数器T0及T1,具有定时和计数两种功能。T0及T1在计数过程中不需要CPU参与,也不影响CPU的其他工作。当计数溢出后,定时/计数器给出中断信号,申请CPU停止当前的工作,去处理预先设定的中断事件。 一、T1内部结构 定时器工作模式:对内部时钟信号计数。由于时钟频率是定值,所以可根据计数值计算出定时时间。 计数器工作模式:是对加在T1(P3.5)引脚上的外部脉冲进行计数。 二、计数功能 计数器用于统计从TO(P3.4)和Tl(P3.5)两个引脚输入脉冲的负跳变数量。负跳变是指前一个机器周期采样为高电平,后一个机器周期为低电平。每输入一个脉冲负跳变,计数器加1。 输入脉冲的高电平与低电平至少应保持
[单片机]
51单片机<font color='red'>定时器</font>和计数器
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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