我的循线程序为什么不能正常执行呢?
一点反应都没#include<reg52.h>/*------------------------------------------------
I/O口定义和车子状态
------------------------------------------------*/
sbit zuo0 = P0^0;
sbit zuo1 = P0^1;
sbit you0 = P0^2;
sbit you1 = P0^3;
sbit a=P3^2;
sbit b=P3^3;
void zuozhuan()
{zuo0 = 1;zuo1 = 0;you0 = 0;you1 = 1;}
void youzhuan()
{zuo0 = 0;zuo1 = 1;you0 = 1;you1 = 0;}
void qianjin()
{zuo0= 0;zuo1= 1;you0 = 0;you1 = 1;}
/*----------主程序--------------*/
main()
{
EA=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
while(1)
{
qianjin();
}
}
/*------------------------------------------------
------------------------------------------------*/
void left_led(void) interrupt 0
{
zuozhuan();
}
void right_led(void) interrupt 2
{
zuozhuan();
}
使用的外部中断 你这样直接贴代码,没多少人会去看的。
你得把你的思路,逻辑处理,代码只是最后的描述而已
学会问问题也是一门学问 SXH201312 发表于 2014-5-20 11:25
你这样直接贴代码,没多少人会去看的。
你得把你的思路,逻辑处理,代码只是最后的描述而已
我的目的是让它寻到黑线以后左右转,然后同时测距,但是结果它虽然可以循线,但是有好大的延迟 墨逸、 发表于 2014-5-20 18:18
我的目的是让它寻到黑线以后左右转,然后同时测距,但是结果它虽然可以循线,但是有好大的延迟 ...
问题是你有没有对输入的信号进行处理,假如走到边上,输入的信号本身就不稳定,你又没做任何滤波处理,那么就会振荡。
还有你对其信号采集用了外部中断,本身也存在很大的干扰,不知道你有没有处理,一个小的外部干扰或电源干扰等都会进入中断
你可以试下直接用IO口读取,这样作消抖或滤波也相对容易些
先跑稳定,再加其他功能
页:
[1]