void range_sensors_main() { iodefs_init(); leds_init(); range_sensors_init(); event_q_init(); sei(); range_sensors_start(); while(1){ event_t e = event_q_get_next_event(); switch(e){ case NEW_PROXIMITY_READINGS: handle_new_prox(); break; default: break; } } }
int main() { motors_init(); movman_init(); contacts_init(); event_q_init(); adc_init(); leds_init(); sei(); adc_start(); movman_schedule_move( WAIT_5_SECONDS_THEN_FULL_FORWARD_FOR_A_LONG_TIME, TO_MEET_STARTUP_REQUIREMENT, IMMEDIATELY); while(1){ // Testing in the lab showed this runs every ~95us event_t e = event_q_get_next_event(); switch(e){ case LINE_DETECTED: handle_line_detected(); break; case CONTACT_DETECTED_BOTH: case CONTACT_DETECTED_FRONT: handle_front_contact(); break; case CONTACT_DETECTED_REAR: handle_rear_contact(); break; case MOVEMENT_COMPLETE: handle_movement_complete(); break; case NEW_PROXIMITY_READINGS: handle_new_prox_readings(); break; default: break; } } return 0; }