| | |
| | | |
| | | #define NSH1 0x0001 |
| | | #define GP 0x0002 |
| | | #define DEBUG_MODE |
| | | //#define DEBUG_MODE |
| | | /* USER CODE END Includes */ |
| | | |
| | | /* Private typedef -----------------------------------------------------------*/ |
| | |
| | | |
| | | if(motor5s_state) |
| | | { |
| | | if(motor5s_timer>4) |
| | | if(motor5s_timer>2) |
| | | { |
| | | motor5s_timer = 0; |
| | | motor5s_state = 0; |
| | | JianXieMotorProcess(); |
| | | } |
| | | }else{ |
| | | if(motor5s_timer>300) |
| | | if(motor5s_timer>30) |
| | | { |
| | | motor5s_timer = 0; |
| | | motor5s_state = 1; |
| | |
| | | } |
| | | } |
| | | }else{ |
| | | if(outside_count>3) |
| | | if(outside_count>3&&motor5s_state) |
| | | { |
| | | motor5s_state = 0; |
| | | motor5s_timer = 900; |
| | | motor5s_timer = 0; |
| | | } |
| | | } |
| | | }else{ |
| | |
| | | // } |
| | | } |
| | | |
| | | if(g_com_map[CNT_RESTART]==1) |
| | | if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) |
| | | { |
| | | g_com_map[CNT_RESTART]=0; |
| | | save_com_map_to_flash(); |
| | | delay_ms(100); |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader |
| | | } |
| | | if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) |
| | | if(memcmp(g_com_map,g_com_map2,(COM_MAP_SIZE<<1))!=0) |
| | | { |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader |
| | | } |
| | |
| | | hardware_pici= STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+2); |
| | | hardware_type= STMFLASH_ReadHalfWord(FLASH_HARDWARE_VERSION_MAP+4); |
| | | //deca_sleep(1000); |
| | | g_com_map[VERSION] = (2<<8)|9; |
| | | |
| | | g_com_map[VERSION] = (2<<8)|17; |
| | | g_com_map2[VERSION] = g_com_map[VERSION]; |
| | | // g_com_map[DEV_ID]=0x7; |
| | | #ifdef DEBUG_MODE |
| | | // g_com_map[DEV_ROLE]=1; |
| | |
| | | // g_com_map[IMU_ENABLE]=0; |
| | | // g_com_map[COM_INTERVAL]=50; |
| | | active_flag = g_com_map[ACTIVE_INDEX]; |
| | | if(active_flag==0) |
| | | { |
| | | g_com_map[COM_INTERVAL]=1000; |
| | | g_com_map[IMU_ENABLE]=1; |
| | | g_com_map[NOMOVESLEEP_TIME]=10; |
| | | g_com_map[MOTOR_ENABLE]=0; |
| | | } |
| | | // if(active_flag==0) |
| | | // { |
| | | // g_com_map[COM_INTERVAL]=1000; |
| | | // g_com_map[IMU_ENABLE]=1; |
| | | // g_com_map[NOMOVESLEEP_TIME]=10; |
| | | // g_com_map[MOTOR_ENABLE]=0; |
| | | // } |
| | | //g_com_map[HEIGHTOFFEST_INDEX]=g_com_map[MAX_REPORT_ANC_NUM]; |
| | | module_power = g_com_map[POWER]; |
| | | imu_enable=g_com_map[IMU_ENABLE]; |
| | |
| | | MX_ADC_Init(); |
| | | //MX_TIM2_Init(); |
| | | /* USER CODE BEGIN 2 */ |
| | | printf("启动时间:%d\r\n",HAL_GetTick()); |
| | | LED_LG_ON; |
| | | Program_Init(); |
| | | Accelerometer_Init(); |
| | |
| | | /** Configure LSE Drive Capability |
| | | */ |
| | | HAL_PWR_EnableBkUpAccess(); |
| | | __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW); |
| | | __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_HIGH); |
| | | /** Initializes the RCC Oscillators according to the specified parameters |
| | | * in the RCC_OscInitTypeDef structure. |
| | | */ |
| | |
| | | tagslotpos = current_slotpos%200; |
| | | flag_tagnewpos = 0; |
| | | } |
| | | uint16_t motorkeeptime_u16,last_motorkeep; |
| | | float lptimedelay=0; |
| | | void HAL_LPTIM_CompareMatchCallback(LPTIM_HandleTypeDef *hlptim) |
| | | { |
| | |
| | | if(motor_keeptime>0) |
| | | { |
| | | motor_keeptime-=lptimedelay; |
| | | motorkeeptime_u16 = motor_keeptime; |
| | | if(motorkeeptime_u16%3==0&&motorkeeptime_u16!=last_motorkeep) |
| | | { |
| | | last_motorkeep=motorkeeptime_u16; |
| | | JianXieMotorProcess(); |
| | | } |
| | | } |
| | | if(motor_keeptime<0) |
| | | {motor_keeptime = 0;} |
| | |
| | | { |
| | | parameter_init(); |
| | | g_com_map[ACTIVE_INDEX] = 1; |
| | | g_com_map2[ACTIVE_INDEX] = 1; |
| | | save_com_map_to_flash(); |
| | | delay_ms(100); |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader |