void main( void ) { int i, j; unsigned int u; char c; /* マイコン機能の初期化 */ init(); /* 初期化 */ initI2CEeprom( &P6DDR, &P6DR, 0x90, 6, 5); /* EEP-ROM初期設定 */ init_sci1( 0x00, 79 ); /* SCI1初期化 */ set_ccr( 0x00 ); /* 全体割り込み許可 */ /* マイコンカーの状態初期化 */ speed_r( 0, 0 ); speed_f( 0, 0 ); servoPwmOut( 0 ); while( 1 ) { switch( pattern ) { case 0: /* メニュー */ printf( "\n\n" ); printf( "Motor Drive PCB TypeS Test Program Ver1.00\n" ); printf( "\n" ); printf( "1 : LEDのテスト\n" ); printf( "2 : スイッチのテスト\n" ); printf( "3 : CN8の入力テスト\n" ); printf( "4 : ブザーのテスト\n" ); printf( "5 : エンコーダのテスト\n" ); printf( "6 : EEP-ROMのテスト\n" ); printf( "7 : ボリュームのテスト\n" ); printf( "8 : アナログセンサ基板のテスト\n" ); printf( "9 : モータのテスト\n" ); printf( "\n" ); printf( "1-9の数字を入力してください " ); pattern = 1; break; case 1: if( get_sci(&c) ) { if( c >= '1' && c <= '9' ) { printf( "%c\n\n" , c ); cnt1 = 0; pattern = (c - 0x30) * 10 + 1; } } break; case 11: /* LEDのテスト */ printf( "現在LED2〜5を順番に点灯中です。" ); printf( "終わったらどれかキーを押してください。\n" ); pattern = 12; break; case 12: led_out( 1 << (cnt1 / 500) ); if( cnt1 >= 2000 ) cnt1 = 0; if( get_sci(&c) == 1 ) { led_out( 0 ); pattern = 0; } break; case 21: /* スイッチのテスト */ printf( "現在スイッチの値を表示中です。" ); printf( "終わったらどれかキーを押してください。\n" ); pattern = 22; break; case 22: if( get_sci(&c) == 1 ) { pattern = 0; break; } if( cnt1 >= 200 ) { cnt1 = 0; printf( "ディップSW(SW3)の値 : %02x ", dipsw_get2() ); printf( "プッシュSW(SW2)の値 : %1x\r", pushsw_get() ); } break; case 31: /* CN8の入力テスト */ printf( "CN8に入力されている値を表示中です。" ); printf( "終わったらどれかキーを押してください。\n" ); pattern = 32; break; case 32: if( get_sci(&c) == 1 ) { pattern = 0; break; } if( cnt1 >= 200 ) { cnt1 = 0; printf( "CN8の入力値 : %1x\r", cn8_get() ); } break; case 41: /* ブザーのテスト */ printf( "ブザーをテストします。" ); printf( "終わったらどれかキーを押してください。\n" ); pattern = 42; break; case 42: if( get_sci(&c) == 1 ) { pattern = 0; beep_out( 0 ); break; } if( cnt1 <= 1000 ) { beep_out( 1 ); } else if( cnt1 <= 2000 ) { beep_out( 0 ); } else { cnt1 = 0; } break; case 51: /* エンコーダのテスト */ printf( "エンコーダの入力パルス数を表示します。" ); printf( "終わったらどれかキーを押してください。\n" ); lEncoderTotal = 0; pattern = 52; break; case 52: if( get_sci(&c) == 1 ) { pattern = 0; break; } if( cnt1 >= 200 ) { cnt1 = 0; printf( "エンコーダのパルス値 : %8ld\r", lEncoderTotal ); } break; case 61: /* EEP-ROMのテスト */ printf( "EEP-ROMが正常に書き込めるかチェックします。" ); printf( "チェック中はキー入力を受け付けません。" ); printf( "チェックしますか?(Y or N) " ); pattern = 62; break; case 62: if( get_sci(&c) == 1 ) { switch( c ) { case 'Y': case 'y': printf( "y\n" ); pattern = 63; break; case 'N': case 'n': printf( "n\n" ); pattern = 0; break; } } break; case 63: for( u=0; u<0x8000 ; u++ ) { if( u % 0x80 == 0 ) { printf( "%3ld%%チェック完了...\r", (long)u * 100 / 0x8000 ); } writeI2CEeprom( u, 0xaa ); while( !checkI2CEeprom() ); if( (unsigned char)readI2CEeprom( u ) != 0xaa ) { break; } writeI2CEeprom( u, 0x55 ); while( !checkI2CEeprom() ); if( (unsigned char)readI2CEeprom( u ) != 0x55 ) { break; } writeI2CEeprom( u, 0x00 ); while( !checkI2CEeprom() ); if( (unsigned char)readI2CEeprom( u ) != 0x00 ) { break; } } printf( "\n" ); if( u == 0x8000 ) { printf( "EEP-ROMは正常でした。\n" ); } else { printf( "EEP-ROMに異常がありました。" ); printf( "半田不良など確認してください。\n" ); } pattern = 64; break; case 64: printf( "どれかキーを押してください。" ); while( get_sci(&c) ); pattern = 65; break; case 65: if( get_sci(&c) == 1 ) { pattern = 0; break; } break; case 71: /* ボリュームのテスト */ printf( "ボリューム電圧を表示中です。" ); printf( "終わったらどれかキーを押してください。\n" ); pattern = 72; break; case 72: if( get_sci(&c) == 1 ) { pattern = 0; break; } if( cnt1 >= 200 ) { cnt1 = 0; i = AD_DRB >> 6; j = (long)500 * i / 1023; printf( "ボリュームの電圧 : %4d (%01d.%02dV)\r", i, j/100, j%100 ); } break; case 81: /* アナログセンサ基板のテスト */ printf( "アナログセンサ基板の値を表示中です。" ); printf( "終わったらどれかキーを押してください。\n" ); pattern = 82; break; case 82: if( get_sci(&c) == 1 ) { pattern = 0; break; } if( cnt1 >= 200 ) { cnt1 = 0; printf( "Left=%4d , Right=%4d , " "Digital=%1x , Center=%1d , Bar=%1d\r", AD_DRD>>6, AD_DRC>>6, sensor_inp(), center_inp(), startbar_get() ); } break; case 91: /* モータのテスト */ printf( "モータのテストをします。\n" ); printf( "1 : 左後ろモータ\n" ); printf( "2 : 右後ろモータ\n" ); printf( "3 : サーボモータ\n" ); printf( "4 : 左前モータ\n" ); printf( "5 : 右前モータ\n" ); printf( "0 : 終了\n" ); printf( "\n" ); printf( "0-5の数字を入力してください " ); pattern = 92; break; case 92: if( get_sci(&c) ) { if( c == '0' ) { pattern = 0; break; } else if( c >= '1' && c <= '5' ) { printf( "%c\n\n" , c ); cnt1 = 0; pattern = (c - 0x31) * 10 + 101; } } break; case 101: printf( "左後ろモータをテストします。\n" ); printf( "スペースキーを押して動作を変えます。" ); printf( "0キーで終了です。\n" ); cnt1 = 0; i = 0; j = 1; pattern = 102; break; case 102: if( get_sci(&c) ) { if( c == '0' ) { speed2_r( 0, 0 ); motor_mode_r( BRAKE , BRAKE ); pattern = 91; break; } else if( c == ' ' ) { cnt1 = 0; i++; if( i >= 5 ) i = 0; } } switch( i ) { case 0: if( i != j ) { printf( "停止中 \r" ); j = i; } speed2_r( 0, 0 ); motor_mode_r( BRAKE , BRAKE ); break; case 1: if( i != j ) { printf( "正転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_r( 50, 0 ); motor_mode_r( BRAKE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_r( 0, 0 ); motor_mode_r( BRAKE , BRAKE ); } else { cnt1 = 0; } break; case 2: if( i != j ) { printf( "逆転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_r( -50, 0 ); motor_mode_r( BRAKE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_r( 0, 0 ); motor_mode_r( BRAKE , BRAKE ); } else { cnt1 = 0; } break; case 3: if( i != j ) { printf( "正転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_r( 50, 0 ); motor_mode_r( FREE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_r( 0, 0 ); motor_mode_r( FREE , BRAKE ); } else { cnt1 = 0; } break; case 4: if( i != j ) { printf( "逆転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_r( -50, 0 ); motor_mode_r( FREE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_r( 0, 0 ); motor_mode_r( FREE , BRAKE ); } else { cnt1 = 0; } break; } break; case 111: printf( "右後ろモータをテストします。\n" ); printf( "スペースキーを押して動作を変えます。" ); printf( "0キーで終了です。\n" ); cnt1 = 0; i = 0; j = 1; pattern = 112; break; case 112: if( get_sci(&c) ) { if( c == '0' ) { speed2_r( 0, 0 ); motor_mode_r( BRAKE , BRAKE ); pattern = 91; break; } else if( c == ' ' ) { cnt1 = 0; i++; if( i >= 5 ) i = 0; } } switch( i ) { case 0: if( i != j ) { printf( "停止中 \r" ); j = i; } speed2_r( 0, 0 ); motor_mode_r( BRAKE , BRAKE ); break; case 1: if( i != j ) { printf( "正転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_r( 0, 50 ); motor_mode_r( BRAKE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_r( 0, 0 ); motor_mode_r( BRAKE , BRAKE ); } else { cnt1 = 0; } break; case 2: if( i != j ) { printf( "逆転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_r( 0, -50 ); motor_mode_r( BRAKE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_r( 0, 0 ); motor_mode_r( BRAKE , BRAKE ); } else { cnt1 = 0; } break; case 3: if( i != j ) { printf( "正転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_r( 0, 50 ); motor_mode_r( BRAKE , FREE ); } else if( cnt1 <= 2000 ) { speed2_r( 0, 0 ); motor_mode_r( BRAKE , FREE ); } else { cnt1 = 0; } break; case 4: if( i != j ) { printf( "逆転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_r( 0, -50 ); motor_mode_r( BRAKE , FREE ); } else if( cnt1 <= 2000 ) { speed2_r( 0, 0 ); motor_mode_r( BRAKE , FREE ); } else { cnt1 = 0; } break; } break; case 121: printf( "サーボモータをテストします。\n" ); printf( "スペースキーを押して動作を変えます。" ); printf( "0キーで終了です。\n" ); cnt1 = 0; i = 0; j = 1; pattern = 122; break; case 122: if( get_sci(&c) ) { if( c == '0' ) { servoPwmOut( 0 ); motor_mode_s( BRAKE ); pattern = 91; break; } else if( c == ' ' ) { cnt1 = 0; i++; if( i >= 5 ) i = 0; } } switch( i ) { case 0: if( i != j ) { printf( "停止中 \r" ); j = i; } servoPwmOut( 0 ); motor_mode_s( BRAKE ); break; case 1: if( i != j ) { printf( "正転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { servoPwmOut( 50 ); motor_mode_s( BRAKE ); } else if( cnt1 <= 2000 ) { servoPwmOut( 0 ); motor_mode_s( BRAKE ); } else { cnt1 = 0; } break; case 2: if( i != j ) { printf( "逆転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { servoPwmOut( -50 ); motor_mode_s( BRAKE ); } else if( cnt1 <= 2000 ) { servoPwmOut( 0 ); motor_mode_s( BRAKE ); } else { cnt1 = 0; } break; case 3: if( i != j ) { printf( "正転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { servoPwmOut( 50 ); motor_mode_s( FREE ); } else if( cnt1 <= 2000 ) { servoPwmOut( 0 ); motor_mode_s( FREE ); } else { cnt1 = 0; } break; case 4: if( i != j ) { printf( "逆転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { servoPwmOut( -50 ); motor_mode_s( FREE ); } else if( cnt1 <= 2000 ) { servoPwmOut( 0 ); motor_mode_s( FREE ); } else { cnt1 = 0; } break; } break; case 131: printf( "左前モータをテストします。\n" ); printf( "スペースキーを押して動作を変えます。" ); printf( "0キーで終了です。\n" ); cnt1 = 0; i = 0; j = 1; pattern = 132; break; case 132: if( get_sci(&c) ) { if( c == '0' ) { speed2_f( 0, 0 ); motor_mode_f( BRAKE , BRAKE ); pattern = 91; break; } else if( c == ' ' ) { cnt1 = 0; i++; if( i >= 5 ) i = 0; } } switch( i ) { case 0: if( i != j ) { printf( "停止中 \r" ); j = i; } speed2_f( 0, 0 ); motor_mode_f( BRAKE , BRAKE ); break; case 1: if( i != j ) { printf( "正転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_f( 50, 0 ); motor_mode_f( BRAKE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_f( 0, 0 ); motor_mode_f( BRAKE , BRAKE ); } else { cnt1 = 0; } break; case 2: if( i != j ) { printf( "逆転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_f( -50, 0 ); motor_mode_f( BRAKE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_f( 0, 0 ); motor_mode_f( BRAKE , BRAKE ); } else { cnt1 = 0; } break; case 3: if( i != j ) { printf( "正転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_f( 50, 0 ); motor_mode_f( FREE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_f( 0, 0 ); motor_mode_f( FREE , BRAKE ); } else { cnt1 = 0; } break; case 4: if( i != j ) { printf( "逆転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_f( -50, 0 ); motor_mode_f( FREE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_f( 0, 0 ); motor_mode_f( FREE , BRAKE ); } else { cnt1 = 0; } break; } break; case 141: printf( "右後ろモータをテストします。\n" ); printf( "スペースキーを押して動作を変えます。" ); printf( "0キーで終了です。\n" ); cnt1 = 0; i = 0; j = 1; pattern = 142; break; case 142: if( get_sci(&c) ) { if( c == '0' ) { speed2_f( 0, 0 ); motor_mode_f( BRAKE , BRAKE ); pattern = 91; break; } else if( c == ' ' ) { cnt1 = 0; i++; if( i >= 5 ) i = 0; } } switch( i ) { case 0: if( i != j ) { printf( "停止中 \r" ); j = i; } speed2_f( 0, 0 ); motor_mode_f( BRAKE , BRAKE ); break; case 1: if( i != j ) { printf( "正転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_f( 0, 50 ); motor_mode_f( BRAKE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_f( 0, 0 ); motor_mode_f( BRAKE , BRAKE ); } else { cnt1 = 0; } break; case 2: if( i != j ) { printf( "逆転50%% <-> ブレーキ動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_f( 0, -50 ); motor_mode_f( BRAKE , BRAKE ); } else if( cnt1 <= 2000 ) { speed2_f( 0, 0 ); motor_mode_f( BRAKE , BRAKE ); } else { cnt1 = 0; } break; case 3: if( i != j ) { printf( "正転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_f( 0, 50 ); motor_mode_f( BRAKE , FREE ); } else if( cnt1 <= 2000 ) { speed2_f( 0, 0 ); motor_mode_f( BRAKE , FREE ); } else { cnt1 = 0; } break; case 4: if( i != j ) { printf( "逆転50%% <-> フリー 動作中\r" ); j = i; } if( cnt1 <= 1000 ) { speed2_f( 0, -50 ); motor_mode_f( BRAKE , FREE ); } else if( cnt1 <= 2000 ) { speed2_f( 0, 0 ); motor_mode_f( BRAKE , FREE ); } else { cnt1 = 0; } break; } break; default: break; }
void main(void) { vInitialize(); myInit(); while(!pushsw_get()) { if(cnt1<100) led_out(0x1); else if(cnt1<200) led_out(0x2); else cnt1 = 0; } cnt1 = 0; while(startbar_get()) { if(cnt1<50) led_out(0x1); else if(cnt1<100) led_out(0x2); else cnt1 = 0; } led_out(0); start(); pattern = 10; while(1) { switch(pattern) { case 10: //直线 if(check_crossline()){ pattern = 30;break; } if(check_blackArea()){ pattern = 40;break; } straight_run(); //直线前行,弯道检测,盲区检测 break; case 20: //弯道 switch(turn_direction) { case LEFT: handle(-1*midDegree_st4); left_turn(); break; case RIGHT: handle(midDegree_st4); right_turn(); break; default:break; } break; case 30: //直角 rightAngle(); break; case 40: //盲区 switch(blackArea_direction) { case LEFT: left_blackArea(); break; case RIGHT: right_blackArea(); break; default:break; } break; default:break; }//end switch }//end while }
int lcdProcess( void ) { int i,n; if( pattern != 1 ) { if( cnt_lcd >= 250 ) { cnt_lcd = 0; lcdPosition( 0, 0 ); /* 0123456789abcbef 1行16文字 */ lcdPrintf( "pattern = %3d ", pattern ); /* 01234567..89abcde.f 1行16文字 */ lcdPrintf( "sensor=%02x bar=%d ", sensor8, startbar_get() ); } return; } /* スイッチ4 設定値保存 */ if( getSwFlag(SW_4) ) { // パラメータ保存 writeDataFlashParameter(); } /* スイッチ3 メニュー+1 */ if( getSwFlag(SW_3) ) { lcd_pattern++; lcdPosition( 0, 0 ); lcdPrintf( " ", i ); lcdPrintf( " ", i ); if( lcd_pattern == 16 ) lcd_pattern = 1; } /* スイッチ2 メニュー−1 */ if( getSwFlag(SW_2) ) { lcd_pattern--; lcdPosition( 0, 0 ); lcdPrintf( " ", i ); lcdPrintf( " ", i ); if( lcd_pattern == 0 ) lcd_pattern = 11; } /* LCD、スイッチ処理 */ switch( lcd_pattern ) { case 1: /* サーボセンタ値調整 */ if( getSwFlag(SW_1) ) { servo_center++; if( servo_center > 10000 ) servo_center = 10000; } if( getSwFlag(SW_0) ) { servo_center--; if( servo_center < 1000 ) servo_center = 1000; } data_buff[DF_SERVO1] = servo_center >> 8; data_buff[DF_SERVO2] = servo_center & 0xff; handle( 0 ); /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789ab..f 1行16文字 */ lcdPrintf( "01 servo = %05d", servo_center ); /* 01234567..89abcde.f 1行16文字 */ lcdPrintf( "sensor=%02x bar=%d ", sensor8, startbar_get() ); break; case 2: /* PWM値調整 */ i = data_buff[DF_PWM]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_PWM] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789..bcdef0123456789..bcdef 1行16文字 */ lcdPrintf( "02 Max SPEED %03d ", i ); /* 01234567..89abcde.f 1行16文字 */ break; case 3: /* 比例値 Kp */ i = data_buff[DF_KP]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < -100 ) i = -100; } data_buff[DF_KP] = i; if(i > 0 ){ n = i % 10; i /= 10; }else{ n = -(i % 10); i /= 10; } /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789..bcdef0123456789..bcdef 1行16文字 */ lcdPrintf( "03 Kp %d.%d ", i,n ); /* 01234567..89abcde.f 1行16文字 */ break; case 4: /* 比例値 Kp */ i = data_buff[DF_KI]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < -100 ) i = -100; } data_buff[DF_KI] = i; if(i > 0 ){ n = i % 10; i /= 10; }else{ n = -(i % 10); i /= 10; } /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789..bcdef0123456789..bcdef 1行16文字 */ lcdPrintf( "04 Ki %d.%d ", i,n ); /* 01234567..89abcde.f 1行16文字 */ break; case 5: /* 比例値 Kp */ i = data_buff[DF_KD]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < -100 ) i = -100; } data_buff[DF_KD] = i; if(i > 0 ){ n = i % 10; i /= 10; }else{ n = -(i % 10); i /= 10; } /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789..bcdef0123456789..bcdef 1行16文字 */ lcdPrintf( "05 Kd %d.%d ", i,n ); /* 01234567..89abcde.f 1行16文字 */ break; case 6: /* タイマー値調整 */ i = ((unsigned char)data_buff[DF_STOP1]*0x100)|(unsigned char)data_buff[DF_STOP2]; if( getSwFlag(SW_1) ) { i+=100; if( i > 9000 ) i = 9000; } if( getSwFlag(SW_0) ) { i-=100; if( i < 0 ) i = 0; } data_buff[DF_STOP1] = i >> 8; data_buff[DF_STOP2] = i & 0xff; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "06 stop time %04d mS", i ); break; case 7://クランク時モーター速度 i = data_buff[DF_crank_motorS]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_crank_motorS] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "07 Crank Speed %03d", i ); break; case 8: i = data_buff[DF_crank_handlepwm]; if( getSwFlag(SW_1) ) { i++; if( i > 40 ) i = 40; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_crank_handlepwm] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "08 Crank handle %03d", i ); break; case 9://クランク時モーター OUT i = data_buff[DF_crank_motor1]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_crank_motor1] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "09 Crank motor OUT %03d", i ); break; case 10://クランク時モーター IN i = data_buff[DF_crank_motor2]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < -100 ) i = -100; } data_buff[DF_crank_motor2] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "10 Crank motor IN %03d", i ); break; case 11: i = data_buff[DF_lane_motorS]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_lane_motorS] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "11 LaneChange Speed %3d", i ); break; case 12: i = data_buff[DF_laneL_PWM]; if( getSwFlag(SW_1) ) { i++; if( i > 30 ) i = 30; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_laneL_PWM] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "12 LaneChange L handle %03d", i ); break; case 13: i = data_buff[DF_laneR_PWM]; if( getSwFlag(SW_1) ) { i++; if( i > 30 ) i = 30; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_laneR_PWM] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "13 LaneChange R handle %03d", i ); break; case 14: i = data_buff[DF_lane_motorL]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_lane_motorL] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "14 LaneChange Motor OUT %03d", i ); break; case 15: i = data_buff[DF_lane_motorR]; if( getSwFlag(SW_1) ) { i++; if( i > 100 ) i = 100; } if( getSwFlag(SW_0) ) { i--; if( i < 0 ) i = 0; } data_buff[DF_lane_motorR] = i; /* LCD処理 */ lcdPosition( 0, 0 ); /* 0123456789abcdef0123456789abcdef 1行16文字 */ lcdPrintf( "15 LaneChange Motor IN %03d", i ); break; } }