标题: 关于单片机+DS1302时钟调时 [打印本页]

作者: egsresrhtrhrtst    时间: 2023-3-22 23:31
标题: 关于单片机+DS1302时钟调时
有个问题请教一下各位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

作者: cwb2038    时间: 2023-3-23 08:41
两者不是同时起作用的,只能二选一,也就是说if(time==12)成立的话,执行语句time_date[2]=00;否则if(time_[2]<12)成立的话,执行语句time_data[2]++;break; 两者不会冲突
作者: egsresrhtrhrtst    时间: 2023-3-23 10:28
cwb2038 发表于 2023-3-23 08:41
两者不是同时起作用的,只能二选一,也就是说if(time==12)成立的话,执行语句time_date[2]=00;否则if(ti ...

奥,好的明白了,感谢
作者: zhuls    时间: 2023-3-23 10:53
if (++time_data[2]>=12) time_data[2]=0; break;//用这个来替代你的试试?
作者: egsresrhtrhrtst    时间: 2023-3-25 15:18
zhuls 发表于 2023-3-23 10:53
if (++time_data[2]>=12) time_data[2]=0; break;//用这个来替代你的试试?

感谢,更加简洁了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1