找回密码
 立即注册
楼主: 丽江***

想用STC32g12k128显示实时时钟,求教

[复制链接]
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-1-13 20:24:35 | 显示全部楼层
    看到时钟显示了,我去看看程序
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-1-13 21:25:53 | 显示全部楼层
    电子DIY小家 发表于 2023-1-13 16:17
    屠龙刀的代码包里的科学计算器试验里有这个时钟哦,在屏保状态下会显示时钟~有兴趣可以试试 ...

    把科学计算器程序里的rtc.c和rtc.h文件拷到我自己的程序里,原来正常运行的程序,只要执行rtc.c里的设置内时钟指令,就无法运行了。也就是无法打开内部时钟。
    void main()
    {
    unsigned  int c=0;
            mcu_initial();
            TFT089_init();
            TFT_clear();
            RTC_config();//只要执行这个函数就无法运行下去了
            c=ReadTemperature();

            digit6_display(0,32,c);

            while(1)
            {
            c=0;
                    c=ReadTemperature();
                    digit6_display(0,0,c);
    c=SEC;
                    digit6_display(0,64,c);
            }

    该用户从未签到

    4

    主题

    12

    回帖

    758

    积分

    高级会员

    积分
    758
    发表于 2023-1-14 12:45:55 | 显示全部楼层
    32G12K128,彩屏显示实时时钟,同时使用AD中断为什么会变慢呢?查询法使用AD可以。
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-1-15 07:55:00 | 显示全部楼层
    wangyifan 发表于 2023-1-14 12:45
    32G12K128,彩屏显示实时时钟,同时使用AD中断为什么会变慢呢?查询法使用AD可以。 ...

    求例程,我自己的程序框架可能有问题,始终玩不转切换时钟源。但找不到问题在哪,只好求助别人的例程,再移植。
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-1-15 07:59:35 | 显示全部楼层
    曾遇到这们一个情况,我自己写的两个程序,运行都正常,能实现预期结果,想把它们合成一个时,把一个程序的内容合到第二个时,出现问题,但自己找不到原因,解决不了。然后把第二个程序合到第一个时,程序能正常运行,感觉自己在某些语句的理解上存在偏差,只是总找到问题出在哪里,新人的苦呀。

    该用户从未签到

    4

    主题

    12

    回帖

    758

    积分

    高级会员

    积分
    758
    发表于 2023-1-15 10:06:01 | 显示全部楼层
    void RTC_config(void)
    {
        INIYEAR = 23;
        INIMONTH = 1;
        INIDAY = 13;
        INISEC = S_SEC;          // RTC的时计数值
        INIMIN = S_MIN;          // RTC的分计数值
        INIHOUR = S_HOUR;          // RTC的秒计数值
        INISSEC = 0;
        //STC32G 芯片使用内部32K时钟,休眠无法唤醒
        //IRC32KCR = 0x80;     //启动内部32K晶振.
        //while (!(IRC32KCR & 1));  //等待时钟稳定
        //RTCCFG = 0x03;       //选择内部32K时钟源,触发RTC寄存器初始化
        X32KCR = 0x80 + 0x40;   //启动外部32K晶振, 低增益+0x00, 高增益+0x40.
        while (!(X32KCR & 1))
        {
            ;    //等待时钟稳定
        }
        RTCCFG = 0x01;          //选择外部32K时钟源,触发RTC寄存器初始化
        RTCIF = 0x00;     //清中断标志
        RTCIEN = 0x08;    //中断使能, 0x80:闹钟中断, 0x40:日中断, 0x20:小时中断, 0x10:分钟中断, 0x08:秒中断, 0x04:1/2秒中断, 0x02:1/8秒中断, 0x01:1/32秒中断
        RTCCR = 0x01;     //RTC使能
        while(RTCCFG & 0x01)
        {
            ;    //等待初始化完成,需要在 "RTC使能" 之后判断.
        }
        //设置RTC时间需要32768Hz的1个周期时间,大约30.5us. 由于同步, 所以实际等待时间是0~30.5us.
        //如果不等待设置完成就睡眠, 则RTC会由于设置没完成, 停止计数, 唤醒后才继续完成设置并继续计数.
    }
    /************************************************************************
    *************************************************************************/
    void RTC_Isr()interrupt 13
    {
        if(RTCIF & 0x80)    //闹钟中断
        {
            RTCIF &= ~0x80;
            B_Alarm = 1;
        }
        if(RTCIF & 0x08)    //秒中断
        {
            RTCIF &= ~0x08;
            B_1s = 1;
        }
      
    }
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-1-15 18:52:24 | 显示全部楼层
    本帖最后由 丽江春水 于 2023-1-15 18:55 编辑

    多谢,已复制,利用过节时间好好研究一下,可惜是外部晶振,我手里没有这个频率的晶振,没法试。

    该用户从未签到

    551

    主题

    9453

    回帖

    1万

    积分

    管理员

    积分
    14007
    发表于 2023-1-15 18:58:23 | 显示全部楼层
    内部那个 32K, 是 20K ~ 40K 的掉电唤醒定时器用的 LIRC时钟,你可以用来 测试,实际用 RTC, 必须外部32768
  • TA的每日心情
    无聊
    2023-11-26 13:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    14

    主题

    85

    回帖

    611

    积分

    高级会员

    积分
    611
     楼主| 发表于 2023-1-15 21:28:17 | 显示全部楼层
    神农鼎 发表于 2023-1-15 18:58
    内部那个 32K, 是 20K ~ 40K 的掉电唤醒定时器用的 LIRC时钟,你可以用来 测试,实际用 RTC, 必须外部32768 ...

    谢谢,这个事我没想到,我的外部时钟用了11M的,没法用32K了

    该用户从未签到

    551

    主题

    9453

    回帖

    1万

    积分

    管理员

    积分
    14007
    发表于 2023-1-15 21:37:55 | 显示全部楼层
    你外部11M, RTC 就不要考虑用了; 用RTC, 则CPU用内部时钟
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2024-5-16 18:06 , Processed in 0.068599 second(s), 63 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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