完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
回复本帖可获得 1 分积分奖励! 每人限 1 次 |
本帖最后由 ok0987 于 2014-3-18 11:28 编辑
下面这个是我写的用来调用的程序 void add_time(uchar ad,uchar b,uchar j)//ad-地址 b-数据 j-进位数 { /*暂停ds1302*/ w_ds(0x8e,0x00);//关闭写保护 w_ds(0x80,0x80);//暂停,启停位在‘秒’的地址里的最高位 ds_r_ct(ad,b);//将这一刻的时间放入b b++;//加法 /*进位判断*/ if(b==j) { b=0; } dis_c(s_h,s_li-1,one[b/10]);//随时刷新显示 dis_c(s_h,s_li,one[b%10]);//随时刷新显示 xswzhi(s_h,s_li);//光标依旧在这闪着 ds_w_ct(ad,b);//改变后,写入。 } 而我在主函数里用这个按键调用 if(jishu==2) { switch(s_h+s_li) { case 4: add_time(0x84,time_buf[4],24); break;//时 case 5: break;//年 case 10: break;//分 case 11: break;//月 case 16: break;//秒 case 17: break;//日 } } 可是按下键后数值至少改变了一次。就怎么也不变了。然后我就检测看看哪里有问题。最后发现,如果改为如下形式就可以正常了。 void add_time(uchar ad,uchar b,uchar j)//ad-地址 b-数据 j-进位数 { /*暂停ds1302*/ // w_ds(0x8e,0x00);//关闭写保护 // w_ds(0x80,0x80);//暂停,启停位在‘秒’的地址里的最高位 // ds_r_ct(ad,b);//将这一刻的时间放入b // b++;//加法 /*进位判断*/ if(b==j) { b=0; } dis_c(s_h,s_li-1,one[b/10]);//随时刷新显示 dis_c(s_h,s_li,one[b%10]);//随时刷新显示 xswzhi(s_h,s_li);//光标依旧在这闪着 ds_w_ct(ad,b);//改变后,写入。 } 调用改为 if(jishu==2) { switch(s_h+s_li) { case 4: w_ds(0x8e,0x00);//关闭写保护 w_ds(0x80,0x80);//暂停,启停位在‘秒’的地址里的最高位 ds_r_ct(0x84,time_buf[4]);//将这一刻的时间放入 time_buf[4]++;//加法 add_time(0x84,time_buf[4],24); break;//时 case 5: break;//年 case 10: break;//分 case 11: break;//月 case 16: break;//秒 case 17: break;//日 } } 然后我就疑惑了,这个数组难道不能在调用的函数里做加减吗?很奇怪?只要把time_buf[4]++;放在case中就正常,而放在调用函数add_time()里就不正常,还请大家帮忙分析下。 |
|
相关推荐
6个回答
|
|
求帮忙啊。。。
|
|
|
|
回帖奖励 +1 分积分
的确蛮奇怪,就是搬出来了而已。
|
|
|
|
最后我把调用的函数改成了这个: void add_time(uchar ad,uchar j)//ad-地 j-进位数 /*暂停ds1302*/ w_ds(0x8e,0x00);//关闭写保护 w_ds(0x80,0x80);//暂停,启停位在‘秒’的地址里的最高位 ds_r_ct(ad,uff);//将这一刻的时间放入b //加法 uff++; /*进位判断*/ if(uff==j) { uff=0; } dis_c(s_h,s_li-1,one[uff/10]);//随时刷新显示 dis_c(s_h,s_li,one[uff%10]);//随时刷新显示 xswzhi(s_h,s_li);//光标依旧在这闪着 ds_w_ct(ad,uff);//改变后,写入。 } 这个uff是我有重新定义的一个全局变量。这样改后,竟然运行成功了。。难道是函数调用全局数组的时候,数组值无法被改变吗?真是好奇怪。 |
|
|
|
回帖奖励 +1 分积分
的确奇怪,毫无头绪啊
|
|
|
|
回帖奖励 +1 分积分 |
|
|
|
回帖奖励 +1 分积分
的确蛮奇怪,就是搬出来了而已。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
298 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
309 浏览 0 评论
826 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1911 浏览 2 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1427 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12031 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 01:00 , Processed in 0.588770 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191