智能循迹小车,程序上的一些错误,求指导

易水寒一 2013-04-11 05:04:16
1.c(65): warning C206: 'forward1': missing function-prototype
2.c(68): error C141: syntax error near '}'
3.c(89): error C141: syntax error near '==', expected ')'
4.还有些书写上我错误,希望能帮我看看!初学者好多不明白的地方

#include<reg52.h>
sbit PWM1=P1^0;
sbit PWM2=P1^4;
sbit IN1=P1^1;
sbit IN2=P1^2;
sbit IN3=P1^5;
sbit IN4=P1^6;
sbit RP1=P2^0;
sbit RP2=P2^1;
sbit RP3=P2^2;
sbit RP4=P2^3;
sbit RP5=P2^4;
sbit RP6=P2^5;
sbit RP7=P2^6;
sbit RP8=P2^7;
int count1,count2;
void delay(int z)
{
int x,y;
for(x=z;x>0;x--);
for(y=124;y>0;y--);
}
void foward1()
{
IN1=1;
IN2=0;
}
void forward2()
{
IN3=1;
IN4=0;
}
void back1()
{
IN1=0;
IN2=1;
}
void back2()
{
IN3=0;
IN4=1;
}
void speed(int cnt1,int sd1,int cnt2,int sd2)
{
if(cnt1<sd1)
{
PWM1=1
; }
else
{
PWM1=0;
}
if(cnt2<sd2)
{
PWM2=1
;
}
else
{
PWM2=0;
}
}
void turn(int cnt1,int sd1,int cnt2,int sd2)
{
forward1();
forward2();
speed(cnt1,sd1,cnt2,sd2)
}
void back(int cnt1,int sd1,int cnt2,int sd2)
{
back1();
back2();
speed(cnt1,sd1,cnt2,sd2);
}
void main()
{
int num=0;
TMOD=0x01;
EA=1;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
ET0=1;
TR0=1;
turn(count1,250,count2,250);
delay(350);
}
while(1)
{
if(RP1==1&&RP2==1&&RP3==1&&RP4==1&&RP5==1&&RP6==1&&RP7==1&&RP8==1)
back(count1,50,count2,50);
if(RP1==1&&RP2==1&&RP3==1&&RP4==0&&RP5==0&&RP6==1&&RP7==1&&RP8==1)
turn(count1,200,count2,200);
if(RP1==1&&RP2==1&&RP3==0&&RP4==0&&RP5==0&&RP6==1&&RP7==1&&RP8==1)
turn(count1,100,count2,150);
if(RP1==1&&RP2==0&&RP3==0&&RP4==0&&RP5==0&&RP6==1&&RP7==1&&RP8==1)
turn(count1,60,count2,150);
if(RP1==0&&RP2==0&&RP3==0&&RP4==0&&RP5==0&&RP6==1&&RP7==1&&RP8==1)
turn(count1,20,count2,150);
if(RP1==1&&RP2==1&&RP3==1&&RP4==0&&RP5==0&&RP6==0&&RP7==1&&RP8==1)
turn(count1,150,count2,100);
if(RP1==1&&RP2==1&&RP3==1&&RP4==0&&RP5==0&&RP6==0&&RP7==0&&RP8==1)
turn(count1,150,count2,60);
if(RP1==1&&RP2==1&&RP3==1&&RP4==0&&RP5==0&&RP6==0&&RP7==0&&RP8==0)
turn(count1,150,count2,20);
if(RP1==0&&RP2==0&&RP3==0&&RP4==0&&RP5==0&&RP6==0&&RP7==0&&RP8==0)
{
if(num==0)
{
back1();
forward2();
delay(100);
}
if(num>0&&num<3)
{
turn(count1,150,count,150);
}
if(num>=3)
{
PWM1=0;
PWM2=0;
}
num++;
}
}
void time0()interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)/256;
count1++;
count2++;
if(count1>=500)
count1=0;
if(count2>=500)
count2=0;
}
...全文
432 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
易水寒一 2013-04-11
  • 打赏
  • 举报
回复
谢谢两位大神,我是初学者,确实还比较粗心,经验比较不足!谢谢两位
tonforce 2013-04-11
  • 打赏
  • 举报
回复

// 1.这句错误信息是说你的count没有定义
turn(count1,150,count,150);这个位置显示的是: error C202: 'count': undefined identifier

// 2. 函数名错误:foward1() != forward1();失误了吧,以后要多细心些。
void turn(int cnt1,int sd1,int cnt2,int sd2)
{
      forward1(); // forward1()函数在这用,然后你之前定义的函数名是:void foward1(),
      forward2();
      speed(cnt1,sd1,cnt2,sd2)
}
易水寒一 2013-04-11
  • 打赏
  • 举报
回复
我发现我,前面的forward打成foward了,还剩最后一个错误了
易水寒一 2013-04-11
  • 打赏
  • 举报
回复
forward1(); forward2(); speed(cnt1,sd1,cnt2,sd2) 谢谢,其他的我改正了,但是那个forward1();还是有问题,显示的是 warning C206: 'forward1': missing function-prototype turn(count1,150,count,150);这个位置显示的是: error C202: 'count': undefined identifier 谢谢大神指点
fang 2013-04-11
  • 打赏
  • 举报
回复
void turn(int cnt1,int sd1,int cnt2,int sd2) { forward1(); forward2(); speed(cnt1,sd1,cnt2,sd2) //少了个分号 } void main() { int num=0; TMOD=0x01; EA=1; TH0=(65536-1000)/256; TL0=(65536-1000)%256; ET0=1; TR0=1; turn(count1,250,count2,250); delay(350); } //这个大括号是不是放错地方了, while(1) { //下面少了一边括号

69,337

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧