标题:
求大神帮我看看程序错误在哪里
[打印本页]
作者:
无与伦比jay1
时间:
2017-8-17 10:11
标题:
求大神帮我看看程序错误在哪里
哪位大神能帮我看看程序错误 ,是做智能小车的
#include<reg52.h>
#define unchar unsigned char
#define unit unsigned int
#define num_1 100
#define num_2 1000
#define num_3 50
#define unchar unsigned char
#define unit unsigned int
unchar a;
void init()
{
TMOD=0x20;
TH1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
sbit In1=P1^0;
sbit In2=P1^1; //定义左电机1的两个连接端In1,In2;
sbit In3=P1^2;
sbit In4=P1^3; //定义右电机2的两个连接端In3,In4;
sbit In5=P1^4;
sbit In6=P1^5; //定义左电机3的两个连接端In5,In6;
sbit In7=P1^6;
sbit In8=P1^7; //定义右电机4的两个连接端In7,In8;
unsigned int i,j;
void main()
{
void Stop_1()
{
In1=1;
In2=1;
} //定义电机1停止;
void Transferred_1()
{
In1=0;
In2=1;
} //定义电机1正转;
void Reverse_1()
{
In1=1;
In2=0;
} //定义电机1反转;
void Stop_2()
{
In3=1;
In4=1;
} //定义电机2停止;
void Transferred_2()
{
In3=0;
In4=1;
} //定义电机2正转;
void Reverse_2()
{
In3=1;
In4=0;
} //定义电机2反转;
void Stop_3()
{
In5=1;
In6=1;
} //定义电机3停止;
void Transferred_3()
{
In5=0;
In6=1;
} //定义电机3正转;
void Reverse_3()
{
In5=1;
In6=0;
} //定义电机3反转;
void Stop_4()
{
In7=1;
In8=1;
} //定义电机4停止;
void Transferred_4()
{
In7=0;
In8=1;
} //定义电机4正转;
void Reverse_4()
{
In7=1;
In8=0;
} //定义电机4反转;
void Stop()
{
{
Stop_1();
Stop_2();
Stop_3();
Stop_4();
}} //定义子功能:停止
void Advance()
{
for(i=0;i<num_1;i++);
for(j=0;j<num_2;j++);
{
Transferred_1();
Transferred_2();
Transferred_3();
Transferred_4();
}} //定义子功能:前进
void Retreat()
{
for(i=0;i<num_1;i++);
for(j=0;j<num_2;j++);
{
Reverse_1();
Reverse_2();
Reverse_3();
Reverse_4();
}} //定义子功能反转
void Turn_left() //电机1,电机3停止,电机2,电机4正转;
{
Stop_1();
Stop_3();
Transferred_2();
Transferred_4();
} //定义子功能左转
void Turn_right() //电机1,3正转,电机2,4反转;
{
Transferred_1();
Transferred_3();
Stop_2();
Stop_4();
}
void ser()interrupt 4
{
ES=0;
RI=0; //将接收中断标志位清0
a=SBUF; //将接收到的数据赋值给a
switch(a)
{
case 65: Advance();break; //发送的是A,前进指令
case 66: Retreat();break; //发送的是B,后退指令
case 67: Turn_left();break; //发送的是C,左转指令
case 68: Turn_right();break; //发送的是D,右转指令
default: Stop();
}
ES=1;
} }
报错是 CARKEIL.C(33): error C141: syntax error near '{'
CARKEIL.C(34): error C136: 'In1': 'void' on variable
CARKEIL.C(153): error C141: syntax error near '}'
感激不尽
作者:
无与伦比jay1
时间:
2017-8-17 10:12
来人呐 来神呐
作者:
hange_v
时间:
2017-8-17 10:34
你再好好学学C语言基础好不好,函数只能在最外层定义,哪有在函数里面定义函数的,而且还在主函数里面定义函数。你应该把所有函数定义放在最外面,函数里面只能调用函数。真是服了。。。
作者:
hange_v
时间:
2017-8-17 11:09
hange_v 发表于 2017-8-17 10:34
你再好好学学C语言基础好不好,函数只能在最外层定义,哪有在函数里面定义函数的,而且还在主函数里面定义 ...
另外,四轮小车的转向绝对不是你程序中那样简单左右转,你还需要考虑转向时里外车轮转速是不同的。你的这种转向只能是三轮的小车,并且一个是万向轮。
作者:
sgq657785
时间:
2017-8-17 12:09
可以做成函数模块,主程序直接调用就好了啊
作者:
q1833605807
时间:
2017-8-19 11:48
第一子函数要放在主函数后面需要在开头进行声明,第二子函数要放在sbit定义后面,第三刨去语法错误,我觉得你的逻辑也有问题
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1