int main(){ //Initializations Board_init(); Serial_init(); Timer_init(); if (Drive_init() != SUCCESS) { printf("Failed to initialize drive module.\n"); } I2C_init(TILT_COMPASS_I2C_ID, I2C_CLOCK_FREQ); if (TiltCompass_init() != SUCCESS) { printf("Failed to initialize tilt compass module.\n"); } ENABLE_OUT_TRIS = OUTPUT; while (1) { printf("Driving north at full speed.\n"); Timer_new(TIMER_TEST, COMMAND_DELAY); Drive_forwardHeading(100, 0); while(!Timer_isExpired(TIMER_TEST)) { //wait for finish DELAY(1); Drive_runSM(); TiltCompass_runSM(); } Drive_stop(); Drive_runSM(); TiltCompass_runSM(); printf("Driving south at full speed.\n"); Timer_new(TIMER_TEST, COMMAND_DELAY); Drive_forwardHeading(100, 180); while(!Timer_isExpired(TIMER_TEST)) { //wait for finish DELAY(1); Drive_runSM(); TiltCompass_runSM(); } Drive_stop(); Drive_runSM(); TiltCompass_runSM(); delayMillisecond(COMMAND_DELAY); printf("Waiting for retry...\n"); } return SUCCESS; }
int main() { ENABLE_OUT_TRIS = OUTPUT; //Set Enable output pin to be an output, fed to the AND gates ENABLE_OUT_LAT = MICRO; //Initialize control to that of Microcontroller Board_init(); Serial_init(); Timer_init(); Drive_init(); I2C_init(I2C_BUS_ID, I2C_CLOCK_FREQ); TiltCompass_init(); printf("Boat initialized.\n"); Drive_stop(); DELAY(5); #ifdef MOTOR_TEST Drive_pivot(0); #endif #ifdef RUDDER_TEST Drive_forwardHeading(0.0, desiredHeading); #endif int i = 0; int velocity[] = {1600, 1600, 1600, 1600, 1600}; velocityPulse = velocity[i]; Timer_new(TIMER_TEST,FINISH_DELAY); while (1) { if (Timer_isExpired(TIMER_TEST)) { i++; if (i == 5){ i = 0; } velocityPulse = velocity[i]; printf("CURRENT VELOCITY: %d\n\n",velocityPulse); Timer_new(TIMER_TEST,FINISH_DELAY); } Drive_runSM(); TiltCompass_runSM(); } Drive_stop(); return SUCCESS; }
/********************************************************************** * Function: initializeAtlas * @return None. * @remark Initializes the boat's master state machine and all modules. * @author David Goodman * @date 2013.04.24 **********************************************************************/ static void initializeAtlas() { Board_init(); Serial_init(); Timer_init(); #ifdef USE_DRIVE Drive_init(); #endif // I2C bus I2C_init(I2C_BUS_ID, I2C_CLOCK_FREQ); #ifdef USE_TILTCOMPASS TiltCompass_init(); #endif #ifdef USE_GPS GPS_init(); #endif #ifdef USE_NAVIGATION Navigation_init(); #endif #ifdef USE_OVERRIDE Override_init(); #endif #ifdef USE_BAROMETER Barometer_init(); Timer_new(TIMER_BAROMETER_SEND, BAROMETER_SEND_DELAY); #endif // Start calibrating before use startSetOriginSM(); Timer_new(TIMER_HEARTBEAT, HEARTBEAT_SEND_DELAY); Mavlink_sendStatus(MAVLINK_STATUS_ONLINE); }