RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx

上传人:b****2 文档编号:15159758 上传时间:2022-10-28 格式:DOCX 页数:16 大小:17.60KB
下载 相关 举报
RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx_第1页
第1页 / 共16页
RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx_第2页
第2页 / 共16页
RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx_第3页
第3页 / 共16页
RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx_第4页
第4页 / 共16页
RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx

《RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx》由会员分享,可在线阅读,更多相关《RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

RoboCup双足竞步狭窄足冠军比赛程序Word下载.docx

#defineFGFD58//翻跟头幅度

#defineMBSD15//迈步速度

#defineFGSD12//翻跟头速度

#defineJBHWSD50//后脚板回位速度

/*-----计时器计数器1(16bit)比较匹配中断(固定周期2.5ms中断,每次中断后把PC中一个引脚置高,8次中断正好20ms8*2.5=20ms)-----*/

SIGNAL(SIG_OUTPUT_COMPARE1A)

{

PORTC|=(1<

<

phase);

/*把PC口的第phase个引脚置高phase=0,1,2,3,4,5,6,7*/

TCNT1=0x00;

/*计时器计数器1置0*/

OCR0=ServoPos[phase];

/*当TCNT0增加到和ServoPos[phase]相等时产生计时器计数器0中断,ServoPos[phase]的值决定了高电平的时间,也就是脉冲的宽度*/

TCCR0|=(1<

CS02);

/*计时器计数器设置分频系数为256分频并启动计时器计数器0开始计时,TCNT0每16us计数增加1TCNT0940*16us=1504us=1.504ms,舵机中位*/

phase++;

/*phase加1*/

if(phase>

5)/*phase=0,1,2,3,4,5,6,7,分别对应了PC0,PC1,PC2,...PC7*/

{

phase=0;

}

}

/*-----计时器计数器0(8bit)比较匹配中断(中断的时间根据OCR0中设置的ServoPos[phase]值决定,中断后把PC口8个引脚全部降低)-----*/

SIGNAL(SIG_OUTPUT_COMPARE0)

PORTC&

=~((1<

PC0)|(1<

PC1)|(1<

PC2)|(1<

PC3)|(1<

PC4)|(1<

PC5));

/*发生中断时让PC0-PC7全部置低*/

TCCR0&

=~(1<

/*清除计时器计数器并设置分频系数*/

TCNT0=0x00;

/*计时器计数器0置0*/

/*-----步行关系-----*/

/*(94-60)*16=512us=0.512ms*/

/*(94-00)*16=1504us=1.504ms*/

/*(94+60)*16=2496us=2.496ms*/

/*62------>

90°

*/

/*1------>

1.5°

/*15----->

22.5°

/*20------>

30°

/*30------>

45°

/*用T2中断做的mS延时函数-----用于每个动作之间的延时*/

voidwait_ms(intmsec)

intcount;

/*反复用途计数器变数(for句子用使用)*/

TCCR2|=(1<

CS22);

/*在64分频内计时器   4us一次,计数器2开始*/

for(count=0;

count<

msec;

count++)/*只反复msec的次数*/

/*1mS生成*/

TCNT2=0x00;

/*计数器2 置0*/

while(TCNT2<

250){}/*直到250*4=1000us=1ms反复(等待)*/

/*voidstep1(void)//由立正抬左脚迈左腿左脚落地

unsignedchari;

for(i=XS;

i>

0;

i--)

{

ServoPos[2]=ServoPos[2]+2;

ServoPos[5]=ServoPos[5]+1;

wait_ms(JBHWSD);

ServoPos[2]=ServoPos[2]-1;

for(i=MBFDY;

ServoPos[0]=ServoPos[0]-1;

ServoPos[1]=ServoPos[1]-1;

ServoPos[3]=ServoPos[3]-1;

ServoPos[4]=ServoPos[4]-1;

wait_ms(MBSD);

{ServoPos[2]=ServoPos[2]-1;

ServoPos[5]=ServoPos[5]-1;

voidstep2(void)//行进中抬右脚迈右腿右脚落地

for(i=XS;

{ServoPos[2]=ServoPos[2]-1;

ServoPos[5]=ServoPos[5]-2;

{ServoPos[5]=ServoPos[5]+1;

for(i=MBFDE;

ServoPos[0]=ServoPos[0]+1;

ServoPos[1]=ServoPos[1]+1;

ServoPos[3]=ServoPos[3]+1;

ServoPos[4]=ServoPos[4]+1;

ServoPos[2]=ServoPos[2]+1;

voidstep3(void)//行进中抬左脚迈左腿左脚落地

for(i=XS;

{ServoPos[2]=ServoPos[2]+2;

for(i=MBFDE;

//脚底板回位,左脚落地

voidstep4(void)//迈右腿停止

{

}*/

voidstep5(void)//1头前趴

for(i=FGFD;

wait_ms(FGSD);

voidstep6(void)//脚往前趴,

i--)//0抬起90

ServoPos[0]=ServoPos[0]+1;

wait_ms(FGSD);

wait_ms(50);

i--)//1动180

ServoPos[1]=ServoPos[1]-2;

i--)//0zdong90

ServoPos[0]=Serv

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1