找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1934|回复: 10
收起左侧

24.5Hz的晶振怎么延时1us啊?

[复制链接]
ID:803014 发表于 2021-1-25 17:51 | 显示全部楼层 |阅读模式
定时器算不出整数来,近似值延时又不准……
回复

使用道具 举报

ID:390416 发表于 2021-1-25 18:49 | 显示全部楼层
有这么低频率的晶振?
回复

使用道具 举报

ID:155507 发表于 2021-1-25 20:05 | 显示全部楼层

void Timer0Init(void)                //1微秒@24.500MHz  误差2.04%
{
        AUXR &= 0x7F;                //定时器时钟12T模式
        TMOD &= 0xF0;                //设置定时器模式
        TL0 = 0xFE;                //设置定时初值
        TH0 = 0xFF;                //设置定时初值
        TF0 = 0;                //清除TF0标志
        TR0 = 1;                //定时器0开始计时
}


回复

使用道具 举报

ID:342822 发表于 2021-1-25 20:06 | 显示全部楼层
活人被尿憋死~~换晶振!
回复

使用道具 举报

ID:285069 发表于 2021-1-25 20:19 | 显示全部楼层
用一串幾個"_nop_ ();"就夠了;不需動到定時器
回复

使用道具 举报

ID:879794 发表于 2021-1-25 21:04 | 显示全部楼层
用delay函数就可以,不需動到定時器
回复

使用道具 举报

ID:803014 发表于 2021-1-27 16:58 | 显示全部楼层

错了……24.5mhz,不好意思……
回复

使用道具 举报

ID:803014 发表于 2021-1-27 16:59 | 显示全部楼层
angmall 发表于 2021-1-25 20:05
void Timer0Init(void)                //1微秒@24.500MHz  误差2.04%
{
        AUXR &= 0x7F;                //定时器时钟12T模式

这个我用示波器看比1ms多点……
回复

使用道具 举报

ID:803014 发表于 2021-1-27 17:00 | 显示全部楼层
taotie 发表于 2021-1-25 20:06
活人被尿憋死~~换晶振!

这……行吧……
回复

使用道具 举报

ID:879809 发表于 2021-1-27 17:49 | 显示全部楼层
这都不是问题的问题,大多数场合下,1us不需要太准,硬件都有一定的宽容度,要那么准干什么?另一种情况是确实需要精准的1us,那么这是你的项目的关键点,绕不过去的话就换晶振呗,什么都不做等死吗?
回复

使用道具 举报

ID:146782 发表于 2021-1-27 19:22 | 显示全部楼层
1us不需要这么精确吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表