⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 walkspeed.c.svn-base

📁 AVR单片机下
💻 SVN-BASE
字号:
/*                ****ROBOCON 2009 | BUPT TEAM******* * ------------------------------------------------------------------------ * FileName   : walkspeed.c * Version    : 1.0 * Brief      : 控制机器人行走速度,基于promotion驱动器 * Code by    : leaf * Date       : Mar 31, 2009 * Note       : 使用inline是因为主要都是代理性的调用 * * * ------------------------------------------------------------------------ */#include "lib_bupt.h"#ifdef WALKSPEED_H_INCLUDED/*两个驱动器的端口信息由内部的表态变量来保存*/static SpeedPair curSpeed;static Promotion promLeft;static Promotion promRight;static Bool      revLeft = False;static Bool      revRight = False;/* 左轮反速度 */inline void setLeftRev( Bool rev ){	revLeft = rev;}/* 右轮反速度 */inline void setRightRev( Bool rev ){	revRight = rev;}/*初始化两个驱动器的设置,指定端口,指定波特率,指定ID*/inline void walkInit(PromPort pl, PromPort pr, PromId leftId, PromId rightId){	promInit(&promLeft, pl, leftId);	promInit(&promRight, pr, rightId);}/*获得上次设定的速度*/inline SpeedPair getCurSpeed(void){	return curSpeed;}/*同时设置两轮速度*/inline void      setCurSpeed(const SpeedPair *p){	setLeftSpeed(p->left);	setRightSpeed(p->right);}/*设置左速度*/inline void      setLeftSpeed(SPEED_T speed){	curSpeed.left = speed;	promSpeed(&promLeft, revLeft ? -speed : speed );}/*设置右速度*/inline void      setRightSpeed(SPEED_T speed){	curSpeed.right = speed;	promSpeed(&promRight, revRight ? -speed : speed );}/*两边用同样的速度*/inline void      setSameSpeed(SPEED_T speed){	setRightSpeed(speed);	setLeftSpeed(speed);}/*左位移*/inline void      moveLeft(DIST_T dist){	promSendCommand(&promLeft, "HO");	promPosition( &promLeft, revLeft ? -dist : dist );}/*右位移*/inline void      moveRight(DIST_T dist){	promSendCommand(&promRight, "HO");	promPosition( &promRight, revRight ? -dist : dist );}/*两边使用相同位移*/inline void      moveSame(DIST_T dist){	moveLeft(dist);	moveRight(dist);}/*保持当前位置*/inline void      holdPosition(void){	setSameSpeed( 0 );	setSameSpeed( 0 );}/*获取左边的promotion对象*/inline Promotion* getPromLeft(void){	return &promLeft;}/*获取右边的promotion对象*/inline Promotion* getPromRight(void){	return &promRight;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -