找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 13351|回复: 9
打印 上一主题 下一主题
收起左侧

error C236: '_delay': different length of parameter lists这段单片机代码怎么改

[复制链接]
跳转到指定楼层
楼主
ID:829022 发表于 2020-10-12 23:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这段是从b站看的代码,但是编译时显error C236: '_delay': different length of parameter lists,不知道该怎么改。
刚开始学习单片机,很多地方都不懂,请大家帮帮忙,非常感谢

#include <reg51.h>
sbit key1=P3^0;
sbit key2=P3^1;
unsigned char dat1[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char dat2[8]={0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e};
unsigned char dat3[8]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00};
unsigned char dat4[8]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f};
unsigned int mode=0,stu=0,num=0;
void delay(unsigned int x)
{
while(x)
x--;
}
void delay()
{
unsigned char a,b,c;
for(c=123;c>0;c--)
  for(b=116;b>0;b--)
   fpr(a=9;a>0,a--);
}
void keyscan()
{
if(key1==0)
{
   delay(void);
   if(key1==0)
   {
     mode++;
  mode%=4;
  num=0;
   }
   while(!key1);
  }
  if(key2==0)
  {
   delay(void);
   if(key2==0)
   {
    stu++;
stu=stu%2;
   }
   while(!key2);
  }
}
void main()
{
while(1)
{
  keyscan();
  switch(mode)
  {
   case 0:if(stu){P2=dat1[num];num++;num%=8;}break;
   case 1:if(stu){P2=dat2[num];num++;num%=8;}break;
   case 2:if(stu){P2=dat3[num];num++;num%=8;}break;
   case 3:if(stu){P2=dat4[num];num++;num%=8;}break;
  }
    delay();
}
}



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:88256 发表于 2020-10-13 00:54 | 只看该作者
怎么弄了两个的 void delay() 函数?另外,调用延时也不是delay(void);
回复

使用道具 举报

板凳
ID:829022 发表于 2020-10-13 12:39 | 只看该作者
hhdsdy 发表于 2020-10-13 00:54
怎么弄了两个的 void delay() 函数?另外,调用延时也不是delay(void);

我不知道啊,师傅没给代码,全是百度来的
回复

使用道具 举报

地板
ID:739545 发表于 2020-10-13 13:50 | 只看该作者
函数重名了
回复

使用道具 举报

5#
ID:88256 发表于 2020-10-21 00:08 | 只看该作者
禾几_ 发表于 2020-10-13 12:39
我不知道啊,师傅没给代码,全是百度来的

delay函数删除一个,另外,调用延时函数也要给一个延时的数值,比如 delay(5);
回复

使用道具 举报

6#
ID:711539 发表于 2020-10-21 08:14 | 只看该作者
error C236: '_delay': different length of parameter lists  错误表示在调用delay函数时实参使用了不同长度的参数列表。定义了重复的delay函数。在调用时delay(void);错误。更改方法如下:1、删除错误的delay(void);调用2、删除void delay(unsigned int x)函数原型
回复

使用道具 举报

7#
ID:318489 发表于 2020-10-21 09:02 | 只看该作者
有两个这函数了
回复

使用道具 举报

8#
ID:833190 发表于 2020-10-22 16:10 | 只看该作者
函数重定义了,换个函数名就好
回复

使用道具 举报

9#
ID:712493 发表于 2020-10-23 08:49 | 只看该作者
子bai函数里的形参声明的du方式不对.删除delay(void);里的void是对的
回复

使用道具 举报

10#
ID:387641 发表于 2020-10-23 15:03 | 只看该作者
void delay(unsigned int x)这个有重复
{
while(x)
x--;
}

void delay()这个有重复
{
unsigned char a,b,c;
for(c=123;c>0;c--)
  for(b=116;b>0;b--)
   fpr(a=9;a>0,a--);
}  要删除其中一个或重明名
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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