找回密码
 立即注册
查看: 615|回复: 5

STC8H单片机的掉电时间不对

[复制链接]

4

主题

11

回帖

48

积分

新手上路

积分
48
发表于 2024-1-6 11:31:42 | 显示全部楼层 |阅读模式
我设置的是2秒,为啥测量出来的是2.5秒?我按照手册里面算的值,我哪里算的有问题吗?代码如下:
//Fwt在RAM中的地址



#define        FWT_H        (*(unsigned char volatile data *)0xF8)
#define        FWT_L        (*(unsigned char volatile data *)0xF9)
//2秒
#define        DWON_TIME_MAX        2000000L



        //获得内部RAM区的Fwt频率值
        Fwt = FWT_H * 256;
        Fwt += FWT_L;
       
        //计算定时器的次数
        Fwt_Num = (DWON_TIME_MAX / 1000000L) * Fwt / 16L;
        Fwt_Num -= 1;
       
        //获得定时器次数的高低字节
        Fwt_Num_H = Fwt_Num / 256;
        Fwt_Num_L = Fwt_Num % 256;
       
        //设定掉电唤醒时钟约为2秒钟
        WKTCL = Fwt_Num_L;
        WKTCH = 0x80 | Fwt_Num_H;




主函数和测量的结果如下图:
1.png
2.png
回复

使用道具 举报 送花

4

主题

11

回帖

48

积分

新手上路

积分
48
发表于 2024-1-6 11:32:42 | 显示全部楼层
手册里面的介绍:
3.png
回复 支持 反对

使用道具 举报 送花

4

主题

11

回帖

48

积分

新手上路

积分
48
发表于 2024-1-6 11:38:04 | 显示全部楼层
延时的0.5秒是正常的,就是掉电定时器设置的时间不对,多了0.5秒。我读出来的Fwt频率是36800,我计算出来定时器重装值,高字节是17,低字节是247。是哪里的数据类型转换有问题吗?
回复 支持 反对

使用道具 举报 送花

4

主题

11

回帖

48

积分

新手上路

积分
48
发表于 2024-1-6 13:25:04 | 显示全部楼层
回复

使用道具 举报 送花

4

主题

11

回帖

48

积分

新手上路

积分
48
发表于 2024-1-6 13:48:09 | 显示全部楼层
奇怪,我将获取的Fwt频率值,用65536-Fwt得到差值,差值是28736。用这个值设置定制器,掉电时间就正常了,变成了我设置的2秒时间。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:465
  • 最近打卡:2025-06-19 11:08:41

33

主题

2452

回帖

5190

积分

论坛元老

积分
5190
发表于 2024-1-6 15:05:38 | 显示全部楼层
感觉像是这个内部32KIRC的误差引起的0.0,这个时钟温漂压飘都是存在的。
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-19 17:49 , Processed in 0.161361 second(s), 77 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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