daw85 发表于 2024-1-19 11:59:50

STC8H8K64U內部晶振精度 | 已解决

各位同学,我用T0定时器,设置2us中断一次,计数位加1,中断250次后计数位清零再次开始计数,内部晶振产生24M时针。想以此方法产生2KHz的信号,怎么产生出来的信号是1.5KHz左右的?

神农鼎 发表于 2024-1-19 12:37:04






不可能,一定是你程序错,方法错

神农鼎 发表于 2024-1-19 12:40:18





看懂这个 T0在P3.5/T0CLKO,
直接对 CPU时钟分频输出,不需要允许 T0中断


神农鼎 发表于 2024-1-19 12:43:01

不除 12, 重装数如下,无需中断,实际测试下
用中断是严重的不看权威数据手册





神农鼎 发表于 2024-1-19 12:44:59








wangxiangtan 发表于 2024-1-19 13:35:56

用5楼程序试试,

daw85 发表于 2024-1-19 13:50:10

神农鼎 发表于 2024-1-19 12:44


谢谢管理员百忙中回复这么多,主要代码见下面,完整代码见附件。以前用同一块板,基本上相同的代码是可以产生2KHz信号的,但现在编译过后,24MHz设置下载后就是在Ptest脚得不到2Khz信号。我也呐闷了,我现在就想着,会不会是电脑或者单片机出问题了



        AUXR |= 0x80;                        //?????1T??
        TMOD &= 0xF0;                        //???????
        TL0 = 0xD0;                                //???????
        TH0 = 0xFF;                                //???????
        TF0 = 0;
        ET0 = 1;
        EA = 1;
        TR0 = 1;




void T0_Isr() interrupt 1
{
        us2count++;
       
        if(us2count == 250)        //us2count back to 1 per 500us(2us x 250)
        {
                us2count = 0;               
        }

        if (us2count < 246)
        {               
                off_cur(3);
                Ptest = 0;
//                P0M0 &= 0xdf;        //high_resistor mode, no current output
//                DIS1 = 1;
        }
        else        //get current charging pulse
        {       
                out_cur(3);
                Ptest = 1;
//                DIS1 = 0;
//                P0M0 |= 0x20;        //open_drain mode, continue current                       
        }       
}



daw85 发表于 2024-1-19 14:47:11

wangxiangtan 发表于 2024-1-19 13:35
用5楼程序试试,

对,怀疑时钟变了,可以想个办法测量时钟。有空试下,谢谢!

神农鼎 发表于 2024-1-19 21:41:58

直接在P3.5,T0 对系统时钟分频输出 T0CLKO,看系统时钟是多少

daw85 发表于 2024-1-20 20:33:48

神农鼎 发表于 2024-1-19 21:41
直接在P3.5,T0 对系统时钟分频输出 T0CLKO,看系统时钟是多少

按照您提供的方法,在T0CLKO可以得到250K(TH0:0xff,TL0: 0xd0,1T模式,24M时针)的频率,说明了系统时针频率正常。
最后经过分析发现是,T0中断程序中代码过多,可能出现一个中断服务程序还未完成时,下一个中断又来了,从而出现此现象。
最后谢谢您的指导。
页: [1] 2
查看完整版本: STC8H8K64U內部晶振精度 | 已解决