c - 在PIC16F723上设置定时器

标签 c embedded pic microchip

我试图将计时器1设置为具有0.25 s的延迟,但遇到了困难。

我使用以下计算来获取寄存器值:

FCPU = FOSC / 4 = 16 MHz / 4 = 4 MHz

Ftimer = FCPU /预分频器= 4MHz / 8 = 0.5 MHz

Ttimer = 1 / Ftimer = 1 / 0.5 MHz = 2 us

计数=所需延迟/ Ftimer = 0.25 / 2 us = 125000

该特定芯片具有以下预分频器值:

计时器0:2,4,8,16,32,64,128,256

计时器1、1、2、4、8

计时器2:1,4,16

由于此计数对于16位寄存器而言太大,我计算错误吗?还是我只是因为想要的特定延迟而感到运气不佳?

最佳答案

如果您想要一个纯粹的硬件解决方案,那您真不走运。如果您的应用程序允许,将您的想法间隔不远,将CPU速度减半将为您提供所需的时间间隔。另一种选择是使用软件计数器来跟踪溢出次数。在上面的示例中,您想对第二个溢出采取措施。

关于c - 在PIC16F723上设置定时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46836746/

相关文章:

c - memset(foo->a+foo->b, 0, 10) 是什么意思?

c - 简单的 C pthread 测试程序在执行期间挂起

c - 为何存在 Unresolved 包容性?

将 if 语句转换为 for 循环?

c - PIC18F2550内存游戏PIC C18编程LED灭

c - gcc 升级后找不到 stddef.h

c - if else 里面 switch case c 语言

c - 多任务下与UART FIFO相关的Bug

c++ - QT根据串行接口(interface)上​​的输入显示不同的图像

c - PIC24F16KA102 上的定时器 1 不工作