int main(void) { // Initialize the UART,Timers, and I2C1v Board_init(); Serial_init(); Encoder_init(); float angle; while(1){ if(Encoder_isLockPressed() || Encoder_isZeroPressed()){ Encoder_runSM(); // if(useZeroAngle){ // angle = Encoder_getAverageAngle(); // while(!Serial_isTransmitEmpty()); // printf("Angle: %.2f\n", angle); // } // else // zeroAngle = Encoder_getZeroAngle(); // // useZeroAngle = FALSE; // zeroFlag = FALSE; } } return (SUCCESS); }
int main(void) { // Initialize the UART,Timers, and I2C1v Board_init(); Board_configure(USE_SERIAL | USE_LCD | USE_TIMER); dbprint("Starting encoders...\n"); I2C_init(I2C_ID, I2C_CLOCK_FREQ); Encoder_init(); Interface_init(); Timer_new(TIMER_TEST, PRINT_DELAY ); while (!Timer_isExpired(TIMER_TEST)) { Encoder_runSM(); } // Not working? //Encoder_setZeroPitch(); //Encoder_setZeroYaw(); dbprint("Encoders initialized.\n"); DELAY(STARTUP_DELAY) Timer_new(TIMER_TEST, PRINT_DELAY ); bool clearedCalibrateMessage = TRUE; Timer_new(TIMER_TEST2,CALIBRATE_HOLD_DELAY); //Interface_waitLightOnTimer(CALIBRATE_HOLD_DELAY); Interface_waitLightOnTimer(CALIBRATE_HOLD_DELAY); LCD_setPosition(0,0); dbprint("Encoders:\n"); while(1) { if (Timer_isExpired(TIMER_TEST)) { LCD_setPosition(1,0); dbprint(" P=%.1f,\n Y=%.1f\n",Encoder_getPitch(), Encoder_getYaw()); Timer_new(TIMER_TEST, PRINT_DELAY ); } if (Interface_isOkPressed() && Timer_isExpired(TIMER_TEST2)) { Encoder_setZeroPitch(); Encoder_setZeroYaw(); LCD_setPosition(3,0); dbprint("Zeroed encoders.\n"); clearedCalibrateMessage = FALSE; Interface_waitLightOnTimer(CALIBRATE_HOLD_DELAY); Interface_readyLightOff(); Timer_new(TIMER_TEST2,CALIBRATE_HOLD_DELAY); } if (Timer_isExpired(TIMER_TEST2) && !clearedCalibrateMessage) { clearedCalibrateMessage = TRUE; LCD_setPosition(3,0); dbprint(" "); Interface_readyLightOn(); } Encoder_runSM(); Interface_runSM(); } return (SUCCESS); }
/** * @brief Main program. * @param None * @retval None */ int main(void) { RCC_ClocksTypeDef RCC_Clocks; /* SysTick end of count event each 10ms */ RCC_GetClocksFreq(&RCC_Clocks); SysTick_Config(RCC_Clocks.HCLK_Frequency / 100); /********************输出 初始化 ******************/ PWM_init(); STM324xG_LCD_Init(); LCD_Clear(BLACK);/* Clear the LCD */ LCD_SetBackColor(BLACK);/* Set the LCD Back Color */ LCD_SetTextColor(WHITE);/* Set the LCD Text Color */ LCD_DisplayStringLine(LINE(0), " Hello jaja. I'm xiaohei01"); /********************输入 初始化 ******************/ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);/*!< 3 bits for pre-emption priority 1 bits for subpriority */ Encoder_init(); //encoder tim8 usart_init();//通信COM usart2 115200 IMU_init(); if (get_mode()==1) { IMU_BE10(); } KEY_init(); AD_Init(); GPS_int(); TIM2_Configuration(); printf("uart init OK 2 \r\n"); while(1) { if(LCD_flag) { LCD_flag=0; lcd_refresh(); } } }
int main(void) { // Initialize the UART,Timers, and I2C1v Board_init(); Board_configure(USE_SERIAL | USE_LCD | USE_TIMER); dbprint("Starting encoders...\n"); I2C_init(ENCODER_I2C_ID, I2C_CLOCK_FREQ); if (Encoder_init() != SUCCESS) { dbprint("Failed init. encoder\n"); return FAILURE; } Timer_new(TIMER_TEST, PRINT_DELAY ); while (!Timer_isExpired(TIMER_TEST)) { Encoder_runSM(); } // Not working? //Encoder_setZeroPitch(); //Encoder_setZeroYaw(); dbprint("Encoders initialized.\n"); DELAY(STARTUP_DELAY); Timer_new(TIMER_TEST, PRINT_DELAY ); LCD_setPosition(0,0); dbprint("Encoders:\n"); while(1){ if (Timer_isExpired(TIMER_TEST)) { LCD_setPosition(1,0); dbprint(" P=%.1f,\n Y=%.1f\n",Encoder_getPitch(), Encoder_getYaw()); /*dbprint("Encoders:\n P=%d,\n Y=%d\n", readDevice(SLAVE_PITCH_READ_ADDRESS,SLAVE_PITCH_WRITE_ADDRESS), readDevice(SLAVE_YAW_READ_ADDRESS,SLAVE_YAW_WRITE_ADDRESS));*/ /*dbprint("Encoders:\n P=%.1f,\n Y=%.1f\n", readDevice(SLAVE_PITCH_READ_ADDRESS,SLAVE_PITCH_WRITE_ADDRESS) * DEGREE_PER_NUMBER, readDevice(SLAVE_YAW_READ_ADDRESS,SLAVE_YAW_WRITE_ADDRESS) * DEGREE_PER_NUMBER);*/ Timer_new(TIMER_TEST, PRINT_DELAY ); } Encoder_runSM(); } return (SUCCESS); }
/** * Function: initMasterSM * @return None. * @remark Initializes the master state machine for the command canter. * @author David Goodman * @date 2013.03.10 */ void initMasterSM() { Board_init(); Serial_init(); Timer_init(); // CC buttons LOCK_BUTTON_TRIS = 1; ZERO_BUTTON_TRIS = 1; Encoder_init(); #ifdef USE_XBEE Xbee_init(); #endif #ifdef USE_NAVIGATION Navigation_init(); #endif #ifdef USE_ENCODERS I2C_init(I2C_BUS_ID, I2C_CLOCK_FREQ); #endif #ifdef USE_ACCELEROMETER //printf("Initializing accelerometer...\n"); if (Accelerometer_init() != SUCCESS) { printf("Failed to initialize the accelerometer.\n"); //return; } //printf("Initialized the accelerometer.\n"); // Configure ports as outputs LED_N_TRIS = OUTPUT; LED_S_TRIS = OUTPUT; LED_E_TRIS = OUTPUT; LED_W_TRIS = OUTPUT; Timer_new(TIMER_ACCELEROMETER, LED_DELAY ); #endif }