找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 624|回复: 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
回复

使用道具 举报

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;//用这个来替代你的试试?
回复

使用道具 举报

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 单片机教程网

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