标题: 单片机定时器定时问题 [打印本页]

作者: PDDDF    时间: 2020-4-20 17:29
标题: 单片机定时器定时问题
用定时器0定时,每隔x分钟执行一个函数,x的值手动输入,问题:计时不准确,每计时1分钟会延迟5秒,该误差会随着x的增加而增加,每多1分钟,计时结果延迟5秒,延迟时间为5x,什么原因会导致这样的问题,愿闻其详

作者: wulin    时间: 2020-4-20 21:23
定时器做长时间计时会积累误差,约0.5%以内,这很正常,但不至于每分钟误差5秒。按以下方法轻松调整到1s/小时。
以STC15W404AS为例可以通过修改定时器TL0重装值修正。

char i=0;//数据范围+127~-128,注意TL0数据范围0~255

void Timer0Init()                //50毫秒@12.000MHz
{
        AUXR &= 0x7F;                //定时器时钟12T模式
        TMOD &= 0xF0;                //设置自动重装模式
        TL0 = 0xB0+i;                //设置定时初值
        TH0 = 0x3C;                        //设置定时初值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
}





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