找回密码
 立即注册
楼主: lezjin

AI8051U RTC星期计数器没有计数

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-05-03 13:32:44

109

主题

1900

回帖

5218

积分

论坛元老

积分
5218
发表于 2024-11-21 14:12:55 | 显示全部楼层
lez*** 发表于 2024-11-21 14:07
嗯,代码都差不多的,应该没有什么逻辑上的问题,我感觉是共用一个地址造成的,不过看你的好像月份变化的 ...

不知道STC8H系列有没有这问题,有空再试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-05-03 13:32:44

109

主题

1900

回帖

5218

积分

论坛元老

积分
5218
发表于 2024-11-24 14:13:43 | 显示全部楼层
不知道手头的为个STC8H8K64U是什么版本的,内部RTC测试结果如下:
2024-11-24_141133.jpg

附:RTC初始化(不开RTC中断)代码
  1. void RTC_config(void)
  2. {
  3.     INIYEAR = 24;     //年
  4.     INIMONTH = 11;    //月
  5.     INIDAY = 30;      //日
  6.     INIWEEK=3;        //星期
  7.     INIHOUR = 23;     //H:23
  8.     INIMIN = 59;      //M:59
  9.     INISEC = 55;      //S:55
  10.     INISSEC = 0;      //S/128:0
  11.     ALAHOUR = 0;    //闹钟小时
  12.     ALAMIN  = 0;    //闹钟分钟
  13.     ALASEC  = 0;    //闹钟秒
  14.     ALASSEC = 0;    //闹钟1/128秒
  15.     IRC32KCR = 0x80;   //启动内部32K晶振.
  16.     while (!(IRC32KCR & 1));  //等待时钟稳定
  17.     RTCCFG = 0x03;    //选择内部32K时钟源,触发RTC寄存器初始化
  18. //    X32KCR = 0x80 + 0x40;   //启动外部32K晶振, 低增益+0x00, 高增益+0x40.
  19. //    while (!(X32KCR & 1));  //等待时钟稳定
  20. //    RTCCFG = 0x01;    //选择外部32K时钟源,触发RTC寄存器初始化
  21. //    RTCIF = 0x00;     //清中断标志
  22. //    RTCIEN = 0x88;    //中断使能, 0x80:闹钟中断, 0x40:日中断, 0x20:小时中断, 0x10:分钟中断, 0x08:秒中断, 0x04:1/2秒中断, 0x02:1/8秒中断, 0x01:1/32秒中断
  23.     RTCCR = 0x01;     //RTC使能
  24.     while(RTCCFG & 0x01);    //等待初始化完成,需要在 "RTC使能" 之后判断.
  25.     //设置RTC时间需要32768Hz的1个周期时间,大约30.5us. 由于同步, 所以实际等待时间是0~30.5us.
  26.     //如果不等待设置完成就睡眠, 则RTC会由于设置没完成, 停止计数, 唤醒后才继续完成设置并继续计数.
  27. }
复制代码


回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 15:01 , Processed in 0.107495 second(s), 53 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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