标题: STC15W104单片机时钟校准的设想 [打印本页]

作者: bobby_jack    时间: 2020-4-19 09:54
标题: STC15W104单片机时钟校准的设想
请问各位高人:
8脚的STC15W104只能用内部RC振荡器,但定时精度有限。是否可以把内部时钟定为某值,如30MHz,同时在定时器0上输入一外部有源晶振产生的时钟信号,如30MHz,并对其计数。每隔一定时间,如0.1秒,将计数结果与3MHz相除,得到一修正系数,并用此系数来调整?谢谢。


作者: wulin    时间: 2020-4-19 10:28
STC15W104没有外部时钟输入端,只能用内部时钟。如果不是对时钟精度要求特别高,可以通过修改定时器TL0重装值修正。

char i=0;//+127~-128

void Timer0Init()                //1毫秒@30.000MHz
{
        AUXR |= 0x80;                //定时器时钟1T模式
        TMOD &= 0xF0;                //设置定时器模式
        TH0 = 0x8A;                        //设置定时初值
        TL0 = 0xD0+i;                //设置定时初值
        TF0 = 0;                        //清除TF0标志
        TR0 = 1;                        //定时器0开始计时
}
作者: man1234567    时间: 2020-4-19 10:37
如果外部的准就用外部的,如果两个都不准谁听准的 ?
作者: bobby_jack    时间: 2020-4-19 11:24
我的设想如下:
假设输入到T0的外部时钟是正确的,16.5MHz,那0.1秒计数结果应该是1.65MHz。如果得出的结果是0.825MHz,则说明慢了一半。至于是什么原因不重要。
同时T1在对真正的外部信号在计频,比如8MHz。既然T0慢了一半,那T1也会慢一半,所以是0.4MHz。
最终结果是,需计数频率 = 0.4MHz *10 *2 = 8MHz。
从某种意义上来说,我不是在做频率计,而是频率比较计。
不知我的设想是否正确,请指教。
作者: lovexulu    时间: 2020-4-19 11:29
能用外部准确时钟何必用内部时钟?
作者: bobby_jack    时间: 2020-4-19 13:09
lovexulu 发表于 2020-4-19 11:29
能用外部准确时钟何必用内部时钟?

因为此芯片的机器时钟只能使用机内的RC振荡器。
作者: gongnn    时间: 2020-4-19 16:11
如果对比。30M的外部时钟得降频使用。




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