早教吧 育儿知识 作业答案 考试题库 百科 知识分享

请高手帮我把下列循迹小车的C语言代码解析一下,注明的几处看不懂#defineMOTORCP0//P0口作为电机的控制口.#defineSIGNALP1//P1口的低两位为循迹传感器输入口1.P1不是有8个I/O口,为什么他直接就

题目详情
请高手帮我把下列循迹小车的C语言代码解析一下,注明的几处看不懂
#define MOTOR_C P0 //P0口作为电机的控制口.
#define SIGNAL P1 //P1口的低两位为循迹传感器输入口
1.P1不是有8个I/O口,为什么他直接就这样定义了?这样有什么好处和不足?
#define BACK 0xC6 //后退
#define FORWARD 0xA5 //前进
2.这两个定义后的数值代码什么意思,如果我用L298驱动板,前进后退只用高电平和低电平,这两个数值是不是不适合?
MOTOR_C = FORWARD; //方向向前
uchar check_sig( void )
{
uchar temp = 0;
temp = SIGNAL & 0x03; //信号输入口就只有低两位,得到信号码.
3.这是我最看不懂的地方,SIGNAL 被定义为P1,那SIGNAL 是什么数值呢?
怎么下面跟0X03运算能得出左右转及跑偏的判断来?
return temp;
}
void track( void )
{
uchar sig = 0; //存储采集的信号
timer_init(); //初始化定时器0
while( 1 )
{
run_time = 0; //清计时器,重新开始.
sig = check_sig(); //存储信号码
switch( sig )
{
case 0://两探头都没检测到信号.
forward();
break;
case 1://右边检测到信号.
right();
break;
case 2://左边检测到信号.
left();
break;
case 3://两边同时检测到信号.
stop();
break;
default:
break;
}
while(run_time < 3); //运行一步,时间为 3*5ms
}
}
▼优质解答
答案和解析
解说给你了...
看了 请高手帮我把下列循迹小车的C...的网友还看了以下: