标题: 24.5Hz的晶振怎么延时1us啊? [打印本页]

作者: 迷茫的落叶    时间: 2021-1-25 17:51
标题: 24.5Hz的晶振怎么延时1us啊?
定时器算不出整数来,近似值延时又不准……

作者: 人人学会单片机    时间: 2021-1-25 18:49
有这么低频率的晶振?
作者: angmall    时间: 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开始计时
}



作者: taotie    时间: 2021-1-25 20:06
活人被尿憋死~~换晶振!
作者: coulomb    时间: 2021-1-25 20:19
用一串幾個"_nop_ ();"就夠了;不需動到定時器
作者: jybzl    时间: 2021-1-25 21:04
用delay函数就可以,不需動到定時器
作者: 迷茫的落叶    时间: 2021-1-27 16:58
人人学会单片机 发表于 2021-1-25 18:49
有这么低频率的晶振?

错了……24.5mhz,不好意思……
作者: 迷茫的落叶    时间: 2021-1-27 16:59
angmall 发表于 2021-1-25 20:05
void Timer0Init(void)                //1微秒@24.500MHz  误差2.04%
{
        AUXR &= 0x7F;                //定时器时钟12T模式

这个我用示波器看比1ms多点……
作者: 迷茫的落叶    时间: 2021-1-27 17:00
taotie 发表于 2021-1-25 20:06
活人被尿憋死~~换晶振!

这……行吧……
作者: rundstedt    时间: 2021-1-27 17:49
这都不是问题的问题,大多数场合下,1us不需要太准,硬件都有一定的宽容度,要那么准干什么?另一种情况是确实需要精准的1us,那么这是你的项目的关键点,绕不过去的话就换晶振呗,什么都不做等死吗?
作者: aayon1979    时间: 2021-1-27 19:22
1us不需要这么精确吧




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1