找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 493|回复: 4
打印 上一主题 下一主题
收起左侧

关于单片机+DS1302时钟调时

[复制链接]
跳转到指定楼层
楼主
ID:978416 发表于 2023-3-22 23:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有个问题请教一下各位case 2:if(time_data[2]==12)time_data[2]=00;                else if(time_data[2]<12)time_data[2]++;break;        


此函数是调时函数里月份的那一段,判断time_dat[2]如果到了12就=0,如果不到就继续加1,
现在的效果很正常到了12在按下按键就变成00,但是我有个关于if else if程序执行流程疑问就是,如果按键按下后,time_dat[2]=12那么time_dat[2]=00
然后再判断time_data[2]<12成立因为time_data[2]=00,然后就++不是应该是00++=1了吗,为什么是0
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:673647 发表于 2023-3-23 08:41 | 只看该作者
两者不是同时起作用的,只能二选一,也就是说if(time==12)成立的话,执行语句time_date[2]=00;否则if(time_[2]<12)成立的话,执行语句time_data[2]++;break; 两者不会冲突
回复

使用道具 举报

板凳
ID:978416 发表于 2023-3-23 10:28 | 只看该作者
cwb2038 发表于 2023-3-23 08:41
两者不是同时起作用的,只能二选一,也就是说if(time==12)成立的话,执行语句time_date[2]=00;否则if(ti ...

奥,好的明白了,感谢
回复

使用道具 举报

地板
ID:69038 发表于 2023-3-23 10:53 | 只看该作者
if (++time_data[2]>=12) time_data[2]=0; break;//用这个来替代你的试试?
回复

使用道具 举报

5#
ID:978416 发表于 2023-3-25 15:18 | 只看该作者
zhuls 发表于 2023-3-23 10:53
if (++time_data[2]>=12) time_data[2]=0; break;//用这个来替代你的试试?

感谢,更加简洁了
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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