/*** Playback Robot ***/ void playback_robot(){ while(playback) { int i=0; display_movement(&start_playback); /* pull from array */ for(i=0; i<=array_length; i++) { int direction=array1[i]; if(direction == 1) { move_forward(); }else if(direction == 2) { move_left(); }else if(direction == 3) { move_right(); }else if(direction == 4) { move_reverse(); }else if(direction == 5) { move_pause(); }else if((direction == 0) || (direction == 9)) { playback=0; display_movement(&stop_playback); break; } else { playback=0; break; } if(SW5_down()){ //switch5 stop playback mode playback=0; display_movement(&stop_playback); } } } }
/*** get keypad input ****/ void get_keypad_input() { char keypad_key; keypad_enable(); while(training) { keypad_key=getkey(); // get value from keypad wait_keyup(); lcd_init(); set_lcd_addr(0x00); if(keypad_key==1) { // 1 = forward move_forward(); }else if(keypad_key==4) { // 4 = left move_left(); }else if(keypad_key==7) { // 7 = right move_right(); }else if(keypad_key==0) { // 0 = reverse move_reverse(); }else if(keypad_key==6) { // 7 = pause move_pause(); }else if(keypad_key==9) { // break out of training mode training=0; move_stop(); display_movement(&stop_training); break; }else{ display_movement(&error); } ms_delay(50); } }
void changeMotion() { //------------------------------------------------------------------------------ // change motion based on current cat state // Author: Lingxiao Zheng // Date: 09/29/2015 //------------------------------------------------------------------------------ switch (Car_State) { case 0: // pause 0.5s case 2: case 4: case 6: case 8: case 10: if (resetTimerA0) changeTimerA0Interval(TA0_INTERVAL_0_5s); stop(); break; case 1: // move forward until BLK_LN if (!startADC) startADC=TRUE; move_forward(); break; case 3: // move reverse until BLK_LN move_reverse(); // recording time if (!isRecording) startRecording(); if (!startADC) { five_msec_sleep(SLEEP_1s/2); startADC=TRUE; } break; case 5: // go forward for half of time going reverse if (resetTimerA0) changeTimerA0Interval(TA0_INTERVAL_0_1s*HALF(getRecording())); move_forward(); break; case 7: // spin clockwise if (resetTimerA0) changeTimerA0Interval(TA0_INTERVAL_3s); spin_clockwise(); break; case 9: // spin counter clockwise if (resetTimerA0) changeTimerA0Interval(TA0_INTERVAL_5s); spin_counterclock(); break; default: // done, disable all ISR TA0CTL |= MC__STOP; ADC10IE &= ~ADC10IE0; while(ALWAYS) LPM4; } }