=150;
i=2;
m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=3;
m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=4;
m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=5;
m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=6;
m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=7;
m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=8;
m[i][0]=150;m[i][1]=150;m[i][2]=140;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=9;
m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=10;
m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=11;
m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;
for(i=0;i<12;i++) f[i]=m[i][3]; residual(); }
16
void gait3(void)//动作函数 左转 { uchar i; roopnum=4; rooptime=6; sign=0; i=0;
m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=1;
m[i][0]=150;m[i][1]=145;m[i][2]=150;m[i][3]=155;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=2;
m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=3;
m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=4;
m[i][0]=150;m[i][1]=150;m[i][2]=140;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=5;
m[i][0]=150;m[i][1]=155;m[i][2]=150;m[i][3]=145;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=6;
m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=7;
m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=8;
m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=9;
m[i][0]=150;m[i][1]=145;m[i][2]=150;m[i][3]=155;m[i][4]=0;m[i][5]=0;m[i][6]
17
=150;
i=10;
m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=11;
m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;
for(i=0;i<12;i++) f[i]=m[i][3]; residual(); }
void gait4(void)//动作函数 右转 { uchar i; roopnum=4; rooptime=6; sign=0; i=0;
m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=1;
m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=2;
m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=3;
m[i][0]=150;m[i][1]=145;m[i][2]=150;m[i][3]=155;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=4;
m[i][0]=150;m[i][1]=150;m[i][2]=140;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=5;
m[i][0]=150;m[i][1]=140;m[i][2]=150;m[i][3]=160;m[i][4]=0;m[i][5]=0;m[i][6]
18
=150;
i=6;
m[i][0]=160;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=7;
m[i][0]=150;m[i][1]=155;m[i][2]=150;m[i][3]=145;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=8;
m[i][0]=140;m[i][1]=150;m[i][2]=150;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=9;
m[i][0]=150;m[i][1]=160;m[i][2]=150;m[i][3]=140;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=10;
m[i][0]=150;m[i][1]=150;m[i][2]=160;m[i][3]=150;m[i][4]=0;m[i][5]=0;m[i][6]=150;
i=11;
m[i][0]=150;m[i][1]=145;m[i][2]=150;m[i][3]=155;m[i][4]=0;m[i][5]=0;m[i][6]=150;
for(i=0;i<12;i++) f[i]=m[i][3]; residual(); }
ISR(TIMER2_COMP_vect) //定时器2比较匹配中断 {
static uint time=0,rtime; uchar i; time++; if(time==2000) {
PORTB=0xff; PORTD=0xff; time=1;
19
}
if(time==1000&&canmove) {
if(rtime if(sign==roopnum) sign=0; for(i=0;i<12;i++) if(time<400&&time>0) { if(f[0]==time+100) PORTB&=0xfe; if(f[1]==time+100) PORTB&=0xfd; if(f[2]==time+100) PORTB&=0xfb; if(f[3]==time+100) PORTB&=0xf7; if(f[4]==time+100) PORTB&=0xef; if(f[5]==time+100) PORTB&=0xdf; if(f[6]==time+100) PORTB&=0xbf; if(f[7]==time+100) PORTB&=0x7f; { if(sign==0) f[i]=((rooptime-rtime)*m[i][roopnum-1]+rtime*m[i][0])/rooptime; else f[i]=((rooptime-rtime)*m[i][sign-1]+rtime*m[i][sign])/rooptime; } } } 20