お世話になっています。hamayan です。 > #define foreleg 0x69 > #define hindleg 0x96 > void interrupt_timer0(void) > { > register unsigned a= (count++ &(divNum-1));/*=count%divNum 高速化*/ > register unsigned b= ((a>>4)<<1) + (ampR>>3); > DA.DR0=*(adrR+a);/*右足,=adrR[count%divNum];*/ > DA.DR1=*(adrL+a);/*左足*/ > > P1.DR.BIT.B0=( foreleg >> b ); > P1.DR.BIT.B1=( hindleg >> b ); > } ありゃ、私がぼーっとしている間に、コードが複雑になっている。 Kosaka> P1.DR.BIT.B1=~(P1.DR.BIT.B0=( foreleg >> b )); いいですねー、forelegとhindlegの関係(変数じゃなかったのか)を 考えれば、ずばりですね。 結局、変数を使ったシフト処理は、条件ループになってしまうので、 いかにしてシフト処理を減らすかが、鍵ではないでしょうか。 ------------------------------------------------------------ )^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^( ☆☆☆☆☆☆☆☆☆☆☆☆designed by hamayan☆☆☆☆☆☆☆☆☆ from はまやん アドレスは hamayan@xxxxxxxxxxxxxxxx ★★★★★★★★★end of message and thank you★★★★★★★