打印
[AVR单片机]

程序的调用写法问题

[复制链接]
1989|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiaohuai|  楼主 | 2010-7-17 10:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
while(answer(3));
  do
  {
        for(i=0;i<10;i++)
     {
          SBUF=p=send;
       while(TI==0);
       TI=0;
     }
     }
  while(answer(10));
  do
  {
        for(i=0;i<11;i++)
     {
          SBUF=p=array;
       while(TI==0);
       TI=0;
     }
     }
  while(responses(11));
  for(i=0;i<58;i++)
  {
          SBUF=p=sdk;
       while(TI==0);
       TI=0;
  }
  while(1);
}
///////////////////////////////////
bit     answer(unsigned char r)
{
        unsigned char  k,checksum,answer[2];
  bit     checksum_flag=1;
  for(k=0;k<r+2;k++)
  {
       while(RI==0);
        RI=0;
    RB8=0;
  }
        for(k=0;k<2;k++)
  {
       while(RI==0);
        RI=0;
    RB8=0;
    answer[k]=SBUF;
  }
  checksum=answer[0]+answer[1];
  if(checksum==0x9a)
       checksum_flag=0;
     return   checksum_flag;
}
///////////////////////////////
bit     responses(unsigned char r)
{
        unsigned char  k,checksum,answer[2];
  bit     checksum_flag=1;
  for(k=0;k<r+2;k++)
  {
       while(RI==0);
        RI=0;
    RB8=0;
  }
        for(k=0;k<2;k++)
  {
       while(RI==0);
        RI=0;
    RB8=0;
    answer[k]=SBUF;
  }
  checksum=answer[0]+answer[1];
  if(checksum==0x5e)
       checksum_flag=0;
     return   checksum_flag;
}


有谁知道这部分程序是怎样运行的

相关帖子

沙发
strang| | 2010-7-24 10:57 | 只看该作者
这么多循环?看着晕!

使用特权

评论回复
板凳
gaohq| | 2010-7-25 16:56 | 只看该作者
这思路很乱啊。

使用特权

评论回复
地板
tcc8073| | 2010-7-25 18:10 | 只看该作者
把括号对齐了再说,请人帮你看就把程序写清晰规范点,人家看起来也容易,乱成一堆,谁愿意看啊.
这就是一个串口接收发送程序
while(answer(3));//
  do
   {
        for(i=0;i<10;i++)
     {
        SBUF=p=send;
        while(TI==0);
        TI=0;
     }
   }
  while(answer(10));
  do
   {
        for(i=0;i<11;i++)
     {
       SBUF=p=array;
       while(TI==0);
       TI=0;
     }
   }
  while(responses(11));
  for(i=0;i<58;i++)
   {
       SBUF=p=sdk;
       while(TI==0);
       TI=0;
   }
  while(1);
///////////////////////////////////
bit  answer(unsigned char r)
{
  unsigned char  k,checksum,answer[2];
  bit     checksum_flag=1;
  for(k=0;k<r+2;k++)
   {
        while(RI==0);
        RI=0;
        RB8=0;
   }
  for(k=0;k<2;k++)
   {
        while(RI==0);
        RI=0;
        RB8=0;
        answer[k]=SBUF;
   }
    checksum=answer[0]+answer[1];
    if(checksum==0x9a)
    checksum_flag=0;
    return   checksum_flag;
}
///////////////////////////////
bit     responses(unsigned char r)
{
   unsigned char  k,checksum,answer[2];
   bit     checksum_flag=1;
   for(k=0;k<r+2;k++)
    {
       while(RI==0);
       RI=0;
       RB8=0;
    }
   for(k=0;k<2;k++)
    {
      while(RI==0);
      RI=0;
      RB8=0;
      answer[k]=SBUF;
    }
  checksum=answer[0]+answer[1];
  if(checksum==0x5e)
   checksum_flag=0;
   return   checksum_flag;
}

使用特权

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

本版积分规则

0

主题

218

帖子

1

粉丝