打印

单片机的函数调用及返回值得执行

[复制链接]
1032|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小塔云|  楼主 | 2014-12-24 09:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
uchar chuzhi()        /*chuzhichenggong sum*10*/
{
        uchar temp,h;
        while(1)
        {
                P3=0xf0;
                if(P3!=0xf0)
                {
                        delay(50);
                        if(P3!=0xf0)
                        {
                                temp=P3;
                                P3=0x0f;
                                key=temp|P3;
                                for(h=0;h<10;h++)
                                {
                                         
                                        if(key==K_table[h])        //dedao 60
                                        {
                                                sum=h;
                                                b[0]=sum*10;
                                                break;
                                                }
               
                                        }
                                }
                        }
                       
        display(b[0]);                  
        }
        return (b[0]);
}
void qidong(uchar sum)
{         
        sum=chuzhi();
          while(1)
         {
                 for(sum=sum;sum>0;sum++)
                 {
                           display(sum);
                        }
        }
第一个函数chuzhi 得到的b[0],调用到qidong 函数,数码管能显示b[0]的值,但sum不能累加显示,只显示b[0]的值。本人初学者,求大神帮忙,谢谢喔

相关帖子

沙发
yueguang3048| | 2014-12-24 09:52 | 只看该作者
本帖最后由 yueguang3048 于 2014-12-24 10:15 编辑

void qidong(uchar j)
{      
        uchar  i;  
        j=chuzhi();
          while(1)
         {
                 for(i=j;i>0;i++)
                 {
                           display(i);
                        }
}
还是这样子清爽些,貌似是你的数码管显示没有刷新内容吧

使用特权

评论回复
板凳
小塔云|  楼主 | 2014-12-24 10:05 | 只看该作者
yueguang3048 发表于 2014-12-24 09:52
void qidong(uchar sum)
{      
        uchar  i;  

谢谢您,可是我照您的说,把sum改为了i,还是只显示调用的值,它不累加。这个程序问题从昨晚调到现在了,唉,

使用特权

评论回复
地板
yueguang3048| | 2014-12-24 10:16 | 只看该作者
本帖最后由 yueguang3048 于 2014-12-24 10:25 编辑
小塔云 发表于 2014-12-24 10:05
谢谢您,可是我照您的说,把sum改为了i,还是只显示调用的值,它不累加。这个程序问题从昨晚调到现在了, ...

void qidong(uchar j)
{      
        uchar  i;  
        j=chuzhi();
          while(1)
         {
                 for(i=j;i>0;i++)
                 {
                           display(i);
                        }
}

你再试试 这个 貌似你的sum是个全局变量 有些混乱,如果还是不行的话,可能就是你的display函数有些问题

使用特权

评论回复
5
小塔云|  楼主 | 2014-12-24 13:11 | 只看该作者
yueguang3048 发表于 2014-12-24 10:16
void qidong(uchar j)
{      
        uchar  i;  

非常感谢,但还是那个情况,可能我的程序其他地方问题太多,得不到想要的累加显示。

使用特权

评论回复
6
NE5532| | 2014-12-24 13:16 | 只看该作者
小塔云 发表于 2014-12-24 13:11
非常感谢,但还是那个情况,可能我的程序其他地方问题太多,得不到想要的累加显示。 ...

建议《程序调试黑宝书》,要学会自己分解问题和找问题。

使用特权

评论回复
7
joyme| | 2014-12-24 17:27 | 只看该作者
display(i);   语句后面加至少100ms的延时试试,可能是屏来不及刷新

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝