新塘N76E003 时钟漂移不稳定

[复制链接]
 楼主| HXM1593 发表于 2020-6-12 10:39 | 显示全部楼层 |阅读模式
新塘单片机N76E003使用的休眠定时器,计算30秒休眠,实测只有24秒
  1. void WakeUp_Timer_ISR (void)   interrupt 17     //ISR for self wake-up timer
  2. {
  3.                 lowPower_count++;
  4.                 clr_WKTF;                                               //clear interrupt flag
  5.           RWK = 116;//自动重装入
将值改成116,才行

运行一段时间,后,偏差1s,越来越大了,这一台偏差小点,每台都不一样,估计内部时钟偏差偏大。使用的时候也不知道如何校准。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
wh6ic 发表于 2020-6-12 14:01 | 显示全部楼层
本帖最后由 wh6ic 于 2020-6-12 14:08 编辑

从30秒变到两分钟,应该不是硬件的锅。  没有重装导致的,比如30秒若干计数,没有清零,翻256去了
计算30,出24,那就按37.5再计算一次。另外 003 的内部时钟,低频时钟10KHz有 10% 以上的误差,16MHz 高频误差约 2%
 楼主| HXM1593 发表于 2020-6-15 22:54 | 显示全部楼层
忘了说明,自唤醒定时30S,因为需要时间长,在主程序里面加了个判断#define        LPC_Stop        4                        //掉电模式次数,每圈30秒,4*30秒=120秒   2048分频
  1. if(lowPower_count < LPC_Stop)
  2. {
  3.                                                 PCON =2;//进入掉电模式,等待唤醒
  4.                                          }


这样就达到休眠2分钟了。烧写了几台,发现每台时间间隔误差大。

yueguang3048 发表于 2020-6-16 09:26 | 显示全部楼层
HXM1593 发表于 2020-6-15 22:54
忘了说明,自唤醒定时30S,因为需要时间长,在主程序里面加了个判断#define        LPC_Stop        4                        //掉电模式次数, ...

你单独写一个定时器的程序,然后看看时间准不准。

个人瞎猜:唤醒后需不需要稳定一下晶振。
牛盾的手册还是可以的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

36

主题

849

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

36

主题

849

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部