Wbhdpj 发表于 2022-10-30 16:34

关于芯圣HC89F3XX1使用8M晶振误差问题

最近在使用HC89F3541的外部时钟,晶振使用8M 规格书误差为20PPM,实测29小时误差约为0.015%。麻烦各位大佬看看,那里能改进。        下面为初始化配置:
        (IO口初始化略....)
       WDTC|=0x10;
       CLKCON |= 0x04; // 外部晶振打开
          XTALCFG |= 0x01;// 选择外部高频晶振
          CLKOUT = 0x03;// 选择外部时钟xtal_clk 输出位
          CLKSWR = 0xf0; // 选择外部高频RC为系统时钟
          CLKDIV = 0x01; // 1分频

        // Time0配置
        TCON= 0;
        TCON1 = 0x01;
        TMOD = 0x00;
        TH0 = 0xFC; // 125us
        TL0 = 0x18;
        ET0 = 1;                  
        TR0 = 1;                       


void TIMER0_Rpt(void) interrupt TIMER0_VECTOR
{
        if(++R_u8add10ms>=80)//10ms
        {
               R_u8add10ms=0;
                if(++R_u8Input_1s>=100)
                {                
                        R_u8Input_1s=0;
                        if(++R_BeijingTimeS>=60)
                        {
                                R_BeijingTimeS=0;
                                R_BeijingTimeM++;
                                if(R_BeijingTimeM>=60)
                                {
                                       R_BeijingTimeM=0;
                                        R_BeijingTimeH++;
                                        if(R_BeijingTimeH>=24)
                                        {
                                                R_BeijingTimeH=0;
                                                R_BeijingWeek++;
                                                if(R_BeijingWeek>7)
                                                {
                                                        R_BeijingWeek=1;
                                                }
                                       }
                               }
                        }
               }
       }
}


       


R2D2 发表于 2022-10-31 17:24

既然用上了外部晶体,那么准不准就不是单片机能管的事情了。

天意无罪 发表于 2022-10-31 23:47

晶振的精度都是标准测试环境下测量的,实际使用时,与环境温度,电路设计,和MCU的匹配等都有关系。
页: [1]
查看完整版本: 关于芯圣HC89F3XX1使用8M晶振误差问题