51单片机delay()函数 20

做个智能小车,比如contralcar(1)是前进,contralcar(2)是后退,需要小车执行先前进,5秒后后退,能用delay()实现吗?怎么实现?... 做个智能小车,比如contralcar(1)是前进,contralcar(2)是后退,需要小车执行先前进,5秒后后退,能用delay()实现吗?怎么实现? 展开
 我来答
可以叫我表哥
推荐于2017-10-08 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数: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--);
}
SHUZILEIDA
2012-11-16 · TA获得超过256个赞
知道小有建树答主
回答量:466
采纳率:0%
帮助的人:254万
展开全部
当然可以。
首先判断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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sanjinluo
2012-11-16 · TA获得超过4714个赞
知道大有可为答主
回答量:3402
采纳率:0%
帮助的人:2401万
展开全部
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++;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孙伟杰19
2012-11-24
知道答主
回答量:15
采纳率:0%
帮助的人:4.6万
展开全部
最好是用定时器,延时不是很准,如果对时间精确度不高,可以用delay
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式