51单片机delay()函数 20
做个智能小车,比如contralcar(1)是前进,contralcar(2)是后退,需要小车执行先前进,5秒后后退,能用delay()实现吗?怎么实现?...
做个智能小车,比如contralcar(1)是前进,contralcar(2)是后退,需要小车执行先前进,5秒后后退,能用delay()实现吗?怎么实现?
展开
4个回答
推荐于2017-10-08 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:25897
获赞数:1464984
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。
向TA提问 私信TA
关注
展开全部
delay函数是一般自己定义的一个延时函数。
C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。
// 定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
C语言定义延时函数主要通过无意义指令的执行来达到延时的目的。下面给出一个经典的延时函数。
// 定义一个延时xms毫秒的延时函数
void delay(unsigned int xms) // xms代表需要延时的毫秒数
{
unsigned int x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
展开全部
当然可以。
首先判断CONTRALCAR是否是1
while(conrtalcar(1))
{
delay(5) ;
conrtalcar(0); //停止前进
conrtalcar(2);//后退
}
首先判断CONTRALCAR是否是1
while(conrtalcar(1))
{
delay(5) ;
conrtalcar(0); //停止前进
conrtalcar(2);//后退
}
更多追问追答
追问
conrtalcar(0); 没有定义,可以直接用吗?
菜鸟啊,什么都不懂`~
追答
不能直接用 你可以把CONRTALCAR换成一个变量,比如A等于1前进,A等于0 后退.通过按键让A等于1或0.
if(A==1)
{
delay(5) ;
A==0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
delay只是个延时函数,小车的动作需要你自己根据电路去编写的,
追问
恩恩,这个明白,delay(5) ;就是延时5秒?我的delay是这么定义的,
void Delay() //定义机器人调转子时间子程序
{ unsigned int DelayTime=50000; //定义机器人转弯时间变量
while(DelayTime--);
但是
{conrtalcar(1)
Delay() ;
conrtalcar(2);}
根本不执行CONTRAL(2),为什么呢?
追答
我不知道你用的是什么单片机和编译器,因为有的编译器在while()后面如果没有其他程序的时候,可能会忽略掉的
你吧Delay函数重新写一下吧
追问恩恩,这个明白,delay(5) ;就是延时5秒?我的delay是这么定义的,
void Delay() //定义机器人调转子时间子程序
{ unsigned int DelayTime; //定义机器人转弯时间变量
for(DelayTime=0;DelayTime<5000;){
DelayTime++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好是用定时器,延时不是很准,如果对时间精确度不高,可以用delay
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询