OpenEdv-开源电子网

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

实参传递数据错误,无法理解??

[复制链接]

12

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2011-7-24
在线时间
37 小时
发表于 2012-9-26 09:44:12 | 显示全部楼层 |阅读模式
 void window(uchar signal,uchar state_p,uchar state_y,uchar open_time_hour,uchar open_time_minute ,uchar close_time_hour,uchar close_time_minute)
{


if(signal==1)draw_buf(1,0,0,Y_signal);
        else draw_buf(1,0,0,N_signal);

write_variable_buf(15,0,hex_BCD_shi(readtime_buf[5]));
write_variable_buf(22,0,hex_BCD_ge(readtime_buf[5]));
write_buf(29,0, "-");
write_variable_buf(36,0,hex_BCD_shi(readtime_buf[3]));
write_variable_buf(43,0,hex_BCD_ge(readtime_buf[3]));

write_variable_buf(53,0,hex_BCD_shi(readtime_buf[2]));
write_variable_buf(60,0,hex_BCD_ge(readtime_buf[2]));
write_buf(67,0,":");
write_variable_buf(74,0,hex_BCD_shi(readtime_buf[1]));
write_variable_buf(81,0,hex_BCD_ge(readtime_buf[1]));
write_buf(88,0,":");
write_variable_buf(95,0,hex_BCD_shi(readtime_buf[0]));
write_variable_buf(102,0,hex_BCD_ge(readtime_buf[0]));

if(state_p==1)draw_buf(67,1,1,power);
       else draw_buf(67,1,0,power);

write_buf(1,1,"投影仪状态:");
lcd_buf_write(0);
buf_clear();



write_buf(1,0,"继电器状态:");
if(state_y==1)draw_buf(67,0,0,relay_open);
       else draw_buf(67,0,0,relay_close);


if(open_time_hour>23)open_time_hour=23;
if(open_time_minute>59)open_time_minute=59;
if(close_time_hour>23)close_time_hour=23;
if(close_time_minute>59)close_time_minute=59;

//open_time_hour=open_time_hour%100;
//open_time_minute=open_time_minute%100;

write_variable_buf(80,1,open_time_hour/10);//open_time_hour
write_variable_buf(87,1,open_time_hour%10);
write_buf(94,1,"-");
write_variable_buf(101,1,open_time_minute/10);
write_variable_buf(108,1,open_time_minute%10);
write_buf(1,1, "设定开机时间:");

lcd_buf_write(1);
buf_clear();

//test=close_time_hour;
write_variable_buf(80,0,close_time_hour /10);
write_variable_buf(87,0,close_time_hour %10);
write_buf(94,0,"-");
write_variable_buf(101,0,close_time_minute/10);
write_variable_buf(108,0,close_time_minute%10);
write_buf(1,0,"设定关机时间:");

lcd_buf_write(2);
buf_clear();

}


signal,state_p,state_y,这前三个能传到下面,没问题,
close_time_minute这个也没问题
open_time_hour,open_time_minute , close_time_hour,这三个到下面就出错了,
值还是随机的,我用把数据用串口发上来,发现在是数据出错了,
这是为什么?想不明白~~~用是的winAVR,以前没有遇到这种问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-9-26 09:55:23 | 显示全部楼层
是不是参数太多了,你的编译器支持函数带这么多参数么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2011-7-24
在线时间
37 小时
 楼主| 发表于 2012-9-26 10:02:27 | 显示全部楼层
回复【2楼】正点原子:
是不是参数太多了,你的编译器支持函数带这么多参数么?
---------------------------------
后来我分成两个,好像也不行,很怪哦~我用全局变量又可以
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2012-9-26 14:34:30 | 显示全部楼层
回复【3楼】tanguicaicai:
---------------------------------
单独传递这几个参数试试.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

12

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2011-7-24
在线时间
37 小时
 楼主| 发表于 2012-9-28 15:30:12 | 显示全部楼层
结论出来了哦,我试试定义了一个数组,然后写入数据,然后把数组里的数据发到PC,结果是开头一个数据不好,~~再然后就下载程序都没动静了,单片机可能挂了。但还能下,就不跑了~
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 02:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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