求教,程序、硬件都没改变,本来测试可用的程序执行结...
求教,程序、硬件都没改变,本来测试可用的程序执行结果不一样了#include <AT89x51.H>
#include <intrins.h>
#include "main.h"
#include "ceju.h"
unsigned char Statusflag=1;//×Ü״̬±ê־λ
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;}
void tingche()
{zuo0 = 0;zuo1 = 0;you0 = 0;you1 = 0;}
/*******************ÑÏß***********************/
void xunxian()
{
qianjin();
if((a==0)&&(b==0))
{
qianjin();
}
if((a==0)&&(b==1))
{
youzhuan();
}
if((a==1)&&(b==0))
{
zuozhuan();
}
}
void delayhaomiao(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;
while(--ms)
{
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
}
void main()
{
ceju_test();//²â¾àº¯Êý³õʼ»¯
qianjin();
while(Statusflag==1)
{
xunxian();
ceju();
if(S<=100)
Statusflag=2;
}
while(Statusflag==2)
{
zuozhuan();
delayhaomiao(1700); //´ËʱÊý¾Ý¹©±àÒ룬ʵ¼ÊÐèÒªÐë¸ù¾ÝС³µÇé¿ö¸ü¸Ä
qianjin();
delayhaomiao(3000); //´ËʱÊý¾Ý¹©±àÒ룬ʵ¼ÊÐèÒªÐë¸ù¾ÝС³µÇé¿ö¸ü¸Ä
youzhuan();
delayhaomiao(1700); //´ËʱÊý¾Ý¹©±àÒ룬ʵ¼ÊÐèÒªÐë¸ù¾ÝС³µÇé¿ö¸ü¸Ä
qianjin();
Statusflag=1;
}
}
我做的是个小车,要求功能有循线,超声波避障,循光入库,语音播报,我本来写的循线和超声波避障已经是测试可用了的,然后我就把源程序复制了一份,然后开始写循光,结果总是错误,检查硬件没有问题,就下载了个开始写的循线和超声波避障,结果不能被正确执行,期间也换了一块单片机试过,也是一样的效果,下载单独的循线是可以正常执行的,表示从没遇到过这种情况,求教啊
下附程序,是循线和超声波避障
为什么不画流程图,这样你的逻辑是否有问题就一目了然了。 中文全看不着了。
既然和硬件有关,那除了确认这段程序,还是先逐个排查硬件 {:sweat:}不要在keil内外交叉使用ctrl+c/v ypengfei 发表于 2014-5-15 07:57
为什么不画流程图,这样你的逻辑是否有问题就一目了然了。
这个就是流程图,用流程图软件生成的,跟我的算法一样 ypengfei 发表于 2014-5-15 07:57
为什么不画流程图,这样你的逻辑是否有问题就一目了然了。
按照我用拼音来命名的函数,就完全没必要看中文了,另。。。硬件刚刚检查过,也是没有问题的 墨逸、 发表于 2014-5-15 13:56
按照我用拼音来命名的函数,就完全没必要看中文了,另。。。硬件刚刚检查过,也是没有问题的 ...
晶振不一样?? ypengfei 发表于 2014-5-15 14:08
晶振不一样??
硬件是没有动过的 devcang 发表于 2014-5-15 08:32
中文全看不着了。
既然和硬件有关,那除了确认这段程序,还是先逐个排查硬件 ...
按照我用拼音来命名的函数,就完全没必要看中文了,另。。。硬件刚刚检查过,也是没有问题的
页:
[1]