OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3541|回复: 8

RTC时间程序相关问题

[复制链接]

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2016-12-6
在线时间
40 小时
发表于 2017-4-5 22:14:02 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 春心荡漾 于 2017-4-6 12:49 编辑

给为大神可以告诉我下为什么下面两段代码的执行效果不同吗?万分感谢!!!
第一段:[mw_shl_code=applescript,true]void RTC_IRQHandler(void)
{
        if(RTC_GetITStatus(RTC_IT_SEC))
        {
//                TimeDisplay =1;
                RTC_ClearITPendingBit(RTC_IT_SEC);
                RTC_WaitForLastTask();
                if (RTC_GetCounter() == 0x00015180){
                        RTC_SetCounter(0x00);
                        RTC_WaitForLastTask();
                }
        }
}

while(1)
        {
//                if(TimeDisplay == 1)
                {
                        Time_Display(RTC_GetCounter());
//                        TimeDisplay = 0;
                }
        }[/mw_shl_code]

第二段:
[mw_shl_code=applescript,true]void RTC_IRQHandler(void)
{
        if(RTC_GetITStatus(RTC_IT_SEC))
        {
                TimeDisplay =1;
                RTC_ClearITPendingBit(RTC_IT_SEC);
                RTC_WaitForLastTask();
                if (RTC_GetCounter() == 0x00015180){
                        RTC_SetCounter(0x00);
                        RTC_WaitForLastTask();
                }
        }
}

while(1)
        {
                if(TimeDisplay == 1)
                {
                        Time_Display(RTC_GetCounter());
                        TimeDisplay = 0;
                }
        }[/mw_shl_code]

区别就在于有没有添加显示标志

第一种显示效果是在到达00:00:00是正常的,第二种的话到达23:59:58后直接跳到00:00:00,然后00:00:00停顿一秒钟

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2016-12-6
在线时间
40 小时
 楼主| 发表于 2017-4-6 09:31:40 | 显示全部楼层
回复

使用道具 举报

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2016-12-6
在线时间
40 小时
 楼主| 发表于 2017-4-6 11:39:23 | 显示全部楼层
有没有大神帮忙解决一下啊,快纠结死了啊
回复

使用道具 举报

zdyz123456 该用户已被删除
发表于 2017-4-6 11:56:16 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-4-6 12:03:53 | 显示全部楼层
应该是大不同了.
有标志位控制的是一秒执行一次.
没有标志位控制的.大约几个微秒执行一次吧.
回复

使用道具 举报

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2016-12-6
在线时间
40 小时
 楼主| 发表于 2017-4-6 12:13:53 | 显示全部楼层
操作系统 发表于 2017-4-6 12:03
应该是大不同了.
有标志位控制的是一秒执行一次.
没有标志位控制的.大约几个微秒执行一次吧.

可是那为什么有了标志位会在计时到00:00:00的时候停顿一秒再从00:00:01开始正常计时呢?
回复

使用道具 举报

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2016-12-6
在线时间
40 小时
 楼主| 发表于 2017-4-6 12:48:21 | 显示全部楼层
有显示标志的时候就会出现两个00:00:00,如图所示
捕获.PNG
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-4-6 13:11:19 | 显示全部楼层
这个细节还得请你自己调试才知道.
回复

使用道具 举报

25

主题

105

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2016-12-6
在线时间
40 小时
 楼主| 发表于 2017-4-6 13:37:43 | 显示全部楼层
操作系统 发表于 2017-4-6 13:11
这个细节还得请你自己调试才知道.

可是我理论分析是可以的啊
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-22 09:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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