Exemplo n.º 1
0
void __nxtAssert(const char *file, int line, const char *exp)
{
	display_clear(0);
	display_goto_xy(0, 0);
	display_string("assert");
	display_goto_xy(0, 1);
	display_string("File: ");
	display_string(file);
	display_goto_xy(0, 2);
	display_string("Line: ");
	display_int(line,0);
	display_goto_xy(0, 3);
	display_string(exp);
	display_update();

#ifdef NXT_WARN_ASSERT
	display_goto_xy(0, 3);
	display_string("Press ENTER");
#endif
	while(true)
	{
#ifdef NXT_WARN_ASSERT
		if(ecrobot_is_ENTER_button_pressed())
		{
			display_clear(0);
			display_goto_xy(0, 0);
			return;
		}
#endif
	}
}
Exemplo n.º 2
0
int UI::courseSelect(){
	int course = -1;

	display_goto_xy(4, 1);

	while(1){
		if(ecrobot_is_RUN_button_pressed()){
			course = course * (-1);

			if(course == 1){
				display_string(" IN COURSE");
				display_goto_xy(4, 1);
			}
			else{
				display_string("OUT COURSE");
				display_goto_xy(4, 1);
			}
		}		

		if(ecrobot_is_ENTER_button_pressed()){
			display_goto_xy(6, 3);
			display_string("READY");
			break;
		}
		
		display_update();
		
		// 500msecウェイトする
		systick_wait_ms(500); 	
	}

	display_update();

	return course;
}
void sonar_sensor_measurement(void)
{
    // Variables used for distance measurement
    S32 distance_left = 0;
    S32 distance_right = 0;
    int measurements = 0;

    // Display menu
    reset_sonar_measurement_menu();

    while(true)
    {
        // Update values
        distance_left += ecrobot_get_sonar_sensor(SONAR_SENSOR_FRONT);
        distance_right += ecrobot_get_sonar_sensor(SONAR_SENSOR_REAR);

        // Calculate average of new and previous
        distance_left /= 2;
        distance_right /= 2;

        // Wait when over some measurements
        if(measurements++ % MEASUREMENT_WAIT_INTERVAL == 0)
        {
            // Update the display
            display_sonar_sensor_measurements(distance_left, distance_right);

            systick_wait_ms(MEASUREMENT_WAIT);
        }

        // Chek if the enter button is pressed for long enough time to exit
        if(ecrobot_is_ENTER_button_pressed())
        {   
            // Time when the button was pressed
            int enter_button_pressed_start_time = systick_get_ms();

            // Continusly check if enought time has past to exit
            while(ecrobot_is_ENTER_button_pressed())
            {
                if(enter_button_pressed_start_time + ENTER_BUTTON_EXIT_TIMEOUT < 
                   systick_get_ms()) 
                {   
                    return;
                }
            }
        }
    }
}