/*****************************************/ /* サーボモータテスト2 RIKIYA 2002/02/12 */ /* srvtest5.c */ /* H8-3048F */ /* ITU1,2,3,4を使ったサーボ基本動作テスト*/ /* 周期 20mS */ /* パルス幅 0.28mS〜0.81mS〜1.34mS */ /* 560 1620 2680 */ /*****************************************/ #include <3048f.h> #include /* メイン関数 ********************************************/ void main(void){ timer_init(); /* タイマーの初期化 */ ITU1.TCR.BYTE = 0x23; /* GRAでカウンタクリア φ/8 */ ITU1.GRA = 40000; /* GRAを40000に設定 */ ITU1.GRB = 1620; /* GRBを1620に設定 */ ITU.TMDR.BIT.PWM1 = 1; /* ITU0 PWMモード */ ITU2.TCR.BYTE = 0x23; /* GRAでカウンタクリア φ/8 */ ITU2.GRA = 40000; /* GRAを40000に設定 */ ITU2.GRB = 1620; /* GRBを1620に設定 */ ITU.TMDR.BIT.PWM2 = 1; /* ITU0 PWMモード */ ITU3.TCR.BYTE = 0x23; /* GRAでカウンタクリア φ/8 */ ITU3.GRA = 40000; /* GRAを40000に設定 */ ITU3.GRB = 1620; /* GRBを1620に設定 */ ITU.TMDR.BIT.PWM3 = 1; /* ITU0 PWMモード */ ITU4.TCR.BYTE = 0x23; /* GRAでカウンタクリア φ/8 */ ITU4.GRA = 40000; /* GRAを40000に設定 */ ITU4.GRB = 1620; /* GRBを1620に設定 */ ITU.TMDR.BIT.PWM4 = 1; /* ITU0 PWMモード */ ITU.TSTR.BIT.STR1 = 1; /* カウント開始 */ ITU.TSTR.BIT.STR2 = 1; /* カウント開始 */ ITU.TSTR.BIT.STR3 = 1; /* カウント開始 */ ITU.TSTR.BIT.STR4 = 1; /* カウント開始 */ while(1){ ITU1.GRB = 1090; /*左周り設定*/ ITU2.GRB = 1090; ITU3.GRB = 1090; ITU4.GRB = 1090; wait(2000); ITU1.GRB = 1620; /*基準位置*/ ITU2.GRB = 1620; ITU3.GRB = 1620; ITU4.GRB = 1620; wait(2000); ITU1.GRB = 2150; /*右周り設定*/ ITU2.GRB = 2150; ITU3.GRB = 2150; ITU4.GRB = 2150; wait(2000); ITU1.GRB = 1620; /*基準位置*/ ITU2.GRB = 1620; ITU3.GRB = 1620; ITU4.GRB = 1620; wait(2000); } */ }