您是否陷入了拍摄的pic timer计算,杂耍在数据表之间,
计算器和您的设计要求?如果是这样,那么你需要一些工具
自动化过程。
计算
通常,您需要专注于通常是制作的最终结果
计时器生成频率或测量时间段。这是公平的
当您第一次必须在数据表中找到信息时难以
考虑预分频器和后级等。
关于计时器的主要点是计时器时产生中断
计数溢出I.E.对于8位计时器,意味着计数值转移
from 256 to zero.
pic 定时器0:计算示例
以下是创建18ms的典型计算示例
使用PIC定时器0中断重复速率0。
选择预分频器比为1:128给出以下中断时段(其中
FOSC / 4或4MHz / 4 = 1MHz)并使用定时器0的最大溢出。
1 /(1MHz / 128/256)= 32.768ms
显然这比你需要的时间长,但你可以通过改变来削减它
溢出点(中断)。要做到这一点,你需要这个时期
频率输入到计时器0,即:
1 /(1MHz / 128)= 128us
这是定时器0中的每个计数的时间段。
256 * 128US = 32.768ms
因此,通过操纵溢出点,您可以设置整体中断时段。
所需的时间是18米,所以使用一些计算:
18ms / 128us = 140.625(最接近的整数值是141)
这是生成中断之后所需的计数数。
要使用IT计时器0,它以下列方式加载:
TMR0 = 256-141 + 2; //需要141,但定时器0在负载时松动2。
从这一点开始每128us被定时器0计算,它将溢出后
141 counts (or 18ms)
141 * 128US = 18ms(约),精确时期为18.048ms。
笔记:"写入TMR0,两个 指令时钟周期丢失。通常你有一个特定的时间段你 想算数,比特十进制。在这种情况下,您可能会将156个放入TMR0(256 - 100 = 156)。但是,由于您写入时,由于两个指令周期丢失 TMR0(对于内部逻辑同步),您实际上应该写入158到 timer". [资源 中距离参考手册:DS31011]
注意:如果查看内部数据表中的计时器0框图 时钟同步使用FOSC / 4,因此在计算时段时不要添加2 如果您没有使用内部时钟作为时钟源!主要计算 将使用外部时钟,您需要向该时钟添加2个FOSC / 4个周期 period.
用于PIC定时器计算的TCL脚本
每次使用任何内置的PIC计时器时,您都必须执行这些类型
计算和每个计时器中的硬件都不同而您'll also have
与中断进行战斗。
要使过程轻松您可以使用三个在线(免费)交互式脚本
用TCL编写的模块(工具命令语言)。他们以类似的方式运作
to a Java applets.
这些脚本中的每一个都以每个计时器和每个计时器的最典型使用
允许您使用Slider控件更改预分频器,后部/寄存器值。
这使得随着结果的实验很容易尝试
立即显示在网页(频率和周期显示
定时器的每个部分。预分频器后,在登记后,之后
postscaler).
上面的计算现在微不足道只是移动滑块,直到你得到
靠近您所需的PIC定时器时段,然后将定时器值调整为主页
在正确的答案。
所以你可以做什么 - 如果类型的操作(在没有考虑器中的情况下)
'我需要一个15ms重复率'.
从定时器2最接近的我可以获得15.136(花了1分钟才能测试) -
perhaps I'll尝试定时器1 - ah,它给出了完整的15ms(花了30秒
测试)。只需检查计时器0 - 这给出了15.040ms(花了30秒
test).
当然,您还可以设置主时钟频率(内部或外部
crystal) as well.
pic timer 0.
这具有8位预分频器和8位计时器,并且可以从中驱动
external clock.
预分流器:8位
定时器寄存器:8位
链接到 计时器0.
calculator
注意:在18F系列设备中,计时器0增强为16位功能
(虽然它向后与8位版本兼容)。
pic 定时器1
这具有4位预分频器和16位计时器,可以从中驱动
外钟。它也可以从慢速晶振驱动。 32khz。
预分流器:4位
定时器寄存器:16位
链接到 定时器1
calculator.
注意:在18F系列设备中,Timer1增强了16个可读性(高字节是
双缓冲以允许简单,精确地捕获定时器寄存器值。
pic 定时器2.
这具有4位预分频器和8位计时器和8位时段寄存器
并且仅从内部时钟(FOSC / 4)驱动
预分频器:2位(1:1,1:4,1:16)
定时器寄存器:8位
期间寄存器:8位
后级:4位(1:1至1:16包容)
注意:在18F系列设备中,定时器2具有与16F中相同的结构 versions.
链接到计时器2计算器。
使用ADS1115精度16位ADC进行教程进行低功耗。
arduino. 模拟输出:如何创建最精确的PWM模拟输出以及如何创建模拟PWM正弦波。
了解DigitalWrite()的工作原理......现在使用17倍宏宏!
如何使用TCS230(/ TCS3200)彩色检测器芯片并轻松将其添加到您的任何项目中。
使用ADXL345 Acellerometer,您可以检测到16G!您还可以了解如何使用它来点击检测等。
HMC5883L - 如何制作数字罗盘,了解HMC5883L和QMC5883L之间的差异以及它们是否兼容。
新的! Comments
让你说到你刚刚阅读的东西!留下下面的框中的评论。