- 9
- 0
- 约7.15千字
- 约 31页
- 2017-03-26 发布于贵州
- 举报
c51单片机应用与c语言程序设计第三章c51单片机应用与c语言程序设计第三章
第三章 C语言函数与机器人巡航控制 深圳市鸥鹏科技有限公司 黄曦 2009.3.21 摘要 任务一 基本巡航动作 任务二 匀加速/减速运动 任务三 用函数调用简化运动程序 任务四 高级主题――用数组建立复杂运动 字符型数据 数组 switch语句 工程素质和技能归纳 科学精神的培养 任务一 基本巡航动作 向前巡航,持续时间为3秒。 源程序请参照教材第37页RobotForwardThreeSeconds.c 原理: 输出相应的脉冲序列,使左侧电机逆时针旋转,右侧电机顺时针旋转。程序反复执行130次,需要3秒时间,机器人也向前运动3秒。 尝试调节距离和速度。 尝试通过调节高电平脉宽,从而调节机器人的运动方向。 任务一 基本巡航动作 命令组合,让机器人向前走、左转、右转和向后走。 源程序请参照教材第39页的ForwardLeftRightBackward.c。 尝试1个轮子不动,另一个轮子全速旋转,从而以一个轮子为支点,原地旋转。 源程序请参照教材第41页。 任务二 匀加速/减速运动 编程目的:使机器人的运动更平稳,增长电机的寿命。 编程原理:电机控制信号高电平宽度为1500微秒,如要顺时针加速,则delay_nus()的参数从1500逐渐减小到1300,如要逆时针旋转,则从1500逐渐增大到1700。脉宽变得越快,加/减速的效果就更明显。 任务二 匀加速/减速运动 例程:电机速度逐渐增加到全速然后逐步减小的实现。 源代码参照教材第43页的StartAndStopWithRamping.c 尝试更改变量pulseCount的变化值,调节加速度或减速度。 尝试更改变量pulseCount的变化上限,调节加速或减速的持续时间。 任务三 用函数调用简化运动程序 C语言提供了强大的函数定义功能。一个C程序就是由一个主函数和若干个其它函数构成,由主函数调用其它函数,其它函数也可以相互调用。同一个函数可以被一个或多个函数调用任意多次。 无论机器人要执行何种动作,都离不开前面讨论的各种基本动作。为了各种应用程序方便使用这些基本动作程序,你可以将这些基本动作放在函数中,供其它函数调用来简化程序。 任务三 用函数调用简化运动程序 函数的种类 从函数的定义来看: 标准函数,即库函数,由集成开发环境提供。 用户自定义函数,解决自己的专门需要。 从函数有无返回值来看: 有返回值函数。 无返回值函数。 从主调函数和被调函数来看: 无参数函数。 有参数函数。 任务三 用函数调用简化运动程序 函数的形式: 其中类型标识符和函数名称为函数头。 类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。函数名是由用户定义的标识符。 函数名后有一个括号(不可少写),若函数无参数,则括号内可不写内容或写“void”;若有参数,则形式参数列表给出各种类型的变量,各参数之间用逗号间隔。 {}中的内容称为函数体。函数体中的声明部分,是对函数体内部用到的变量的类型说明。 在很多情况下都不要求函数有返回值,此时函数类型符可以写为void。 任务三 用函数调用简化运动程序 main函数是不能被其它函数调用的,那它的返回值类型int是怎么回事呢? 其实不难理解,main函数执行完之后,它的返回值是给操作系统的。虽然在main函数体内并没有什么语句来指出返回值的大小,但系统默认的处理方式是:当main函数成功执行,它的返回值为1;否则为0。 任务三 用函数调用简化运动程序 下边的Forward函数可以使机器人向前运动1.5秒。该函数是无形参、无返回值的函数,没有太大的使用价值。 任务三 用函数调用简化运动程序 给前面一页的Forward函数增加脉冲数和速度等两个参数,从而可以灵活的设置这些参数,让函数成为一个真正有用的模块。 任务三 用函数调用简化运动程序 注释:在函数定义的下方,有一行注释,提醒我们使用该函数的时候,速度是在0到200之间。 除“//”外,C语言还提供了另一种语句注释符——“/*”和“ */”。 “/*”和“*/”必须成对使用,在它们之间的内容将被注释掉。它的作用范围比“//”大:“//”仅仅对它所在的一行起注释作用;但“/*…*/”可以对多行注释。 注释是你在学习程序设计时要养成的良好习惯。 任务三 用函数调用简化运动程序 完整的使用向前、左转、右转和向后四个函数的例程。 源码参照教材第48页的MovementsWithFuncitons.c 该例程的效果与任务1的ForwardLeftRightBackward.c产生的效果是一致的。 在该程序中,除了main函数以外,其他的四个函数代表了四个方向,具有相同的形参——脉冲个数和速度参数。这四个函数的功能是可以集成在同一个函数中的。
您可能关注的文档
- british_music.ppt
- bsmj-0.4-3-3.doc
- bpmf教学课件.ppt
- bosk电梯软件使用说明书(联网).doc
- btr-新版人力资源管理制度 v1090702.doc
- bsdyw05010902成吉思汗和鹰课件.ppt
- bpmf第二课时1.ppt
- b钢结构工程制做安装施工合同.doc
- bsmj-0.45-6-3 bsmj-0.45-6-3电容器 6kvar低压并联电容器.doc
- c++builder基础2.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 产后骨盆修复全流程指导手册.docx VIP
- HG∕T 2568-2021 工业偏硅酸钠.pdf
- 2025年鄂尔多斯市特岗教师招聘考试真题汇编附答案解析.docx VIP
- 24小时客服电话:010-82311666免费咨询热线:4.doc VIP
- 2020ACLS学员课课前测试中文版试题+答案.pdf VIP
- 髌骨脱位康复护理新进展.pptx VIP
- 急救医学-第四章心悸.ppt VIP
- 高中数学必修第四册第十一章综合测试01含答案解析.pdf VIP
- 2022年高考物理核心高频考点专题22 圆周运动的轻绳、轻杆模型(解析版).pdf VIP
- 马工程-中国古代文学史(第二版)上册第三编魏晋文学全套PPT课件50109.pptx
原创力文档

文档评论(0)