找回密码
 立即注册
查看: 516|回复: 19

STC8H8K64U內部晶振精度 | 已解决

[复制链接]
  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 187 天

    [LV.7]常住居民III

    7

    主题

    82

    回帖

    309

    积分

    中级会员

    积分
    309
    发表于 2024-1-19 11:59:50 | 显示全部楼层 |阅读模式
    各位同学,我用T0定时器,设置2us中断一次,计数位加1,中断250次后计数位清零再次开始计数,内部晶振产生24M时针。想以此方法产生2KHz的信号,怎么产生出来的信号是1.5KHz左右的?
    回复 送花

    使用道具 举报

    该用户从未签到

    566

    主题

    9961

    回帖

    1万

    积分

    管理员

    积分
    14447
    发表于 2024-1-19 12:37:04 | 显示全部楼层
    截图202401191236021587.jpg

    截图202401191236339230.jpg


    不可能,一定是你程序错,方法错
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    566

    主题

    9961

    回帖

    1万

    积分

    管理员

    积分
    14447
    发表于 2024-1-19 12:40:18 | 显示全部楼层
    截图202401191237573654.jpg

    截图202401191238249103.jpg

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

    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    566

    主题

    9961

    回帖

    1万

    积分

    管理员

    积分
    14447
    发表于 2024-1-19 12:43:01 | 显示全部楼层
    不除 12, 重装数如下,无需中断,实际测试下
    用中断是严重的不看权威数据手册


    截图202401191242145698.jpg


    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    566

    主题

    9961

    回帖

    1万

    积分

    管理员

    积分
    14447
    发表于 2024-1-19 12:44:59 | 显示全部楼层
    截图202401191243398257.jpg

    截图202401191244144555.jpg

    截图202401191244542068.jpg


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    13 小时前
  • 签到天数: 202 天

    [LV.7]常住居民III

    12

    主题

    358

    回帖

    1288

    积分

    金牌会员

    积分
    1288
    发表于 2024-1-19 13:35:56 | 显示全部楼层
    用5楼程序试试,
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 187 天

    [LV.7]常住居民III

    7

    主题

    82

    回帖

    309

    积分

    中级会员

    积分
    309
     楼主| 发表于 2024-1-19 13:50:10 | 显示全部楼层

    谢谢管理员百忙中回复这么多,主要代码见下面,完整代码见附件。以前用同一块板,基本上相同的代码是可以产生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                       
            }       
    }



    main.c

    2.97 KB, 下载次数: 20

    全部代码

    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 187 天

    [LV.7]常住居民III

    7

    主题

    82

    回帖

    309

    积分

    中级会员

    积分
    309
     楼主| 发表于 2024-1-19 14:47:11 | 显示全部楼层

    对,怀疑时钟变了,可以想个办法测量时钟。有空试下,谢谢!
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    566

    主题

    9961

    回帖

    1万

    积分

    管理员

    积分
    14447
    发表于 2024-1-19 21:41:58 | 显示全部楼层
    直接在P3.5,  T0 对系统时钟分频输出 T0CLKO,看系统时钟是多少
    截图202401192142229969.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 187 天

    [LV.7]常住居民III

    7

    主题

    82

    回帖

    309

    积分

    中级会员

    积分
    309
     楼主| 发表于 2024-1-20 20:33:48 | 显示全部楼层
    神农鼎 发表于 2024-1-19 21:41
    直接在P3.5,  T0 对系统时钟分频输出 T0CLKO,看系统时钟是多少

    按照您提供的方法,在T0CLKO可以得到250K(TH0:0xff,TL0: 0xd0,1T模式,24M时针)的频率,说明了系统时针频率正常。
    最后经过分析发现是,T0中断程序中代码过多,可能出现一个中断服务程序还未完成时,下一个中断又来了,从而出现此现象。
    最后谢谢您的指导。
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-6-15 22:26 , Processed in 0.072478 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表