/* * BHBF_ROBOT.c * * Created on: Oct 26, 2023 * Author: shiya */ #include "fsm.h" #include "BHBF_ROBOT.h" #include #include "bsp_FDCAN.h" int32_t SystemTimeMiliCount; //2ms加一 //初始化定时器 Sys_timer_handler timer_handler_1; Sys_timer_handler timer_handler_2; Sys_timer_handler timer_handler_3; Sys_timer_handler timer_handler_4; //7 motors MotorParameters *Motor[3]; //Motor Error int32_t *Motor_ID_Errors[3] = { 0 }; //ComError int32_t* SystemErrorCode; ErrorData* SystemErrorData; TT_MotorParameters* TT_Motor[4]; //Declare a CV and initialize CV CV_struct_define CV = { 0 }; //Declare a GV and initialize CV GV_struct_define GV = { 0 }; //Declare a PV and initialize CV //PV_struct_define PV ={ 0 }; IV_struct_define IV ={ 0 }; void GF_MainLoop_Jump(int32_t Next_Index_U, int32_t Next_Index_N); void SET_BIT_1(int32_t* num,int32_t k) { *num=((*num) | (1 << (k))); } void SET_BIT_0(int32_t* num,int32_t k) { *num=((*num) & ~(1 << (k))); } int32_t Get_BIT(int32_t* num,int32_t k) { // return (*num >> (k -1)) & 1; return (*num >> (k)) & 1; } //100ms执行一次 void GF_WatchDog_Loop() { //硬件看门狗复位 //HAL_GPIO_TogglePin(RST_WDI_GPIO_Port, RST_WDI_Pin); //Hardware Watchdog,kicking the dog //硬件看门狗复位 } //比较计数值 bool CompareTimer(int32_t DelayMiliSeconds,Sys_timer_handler * timer_handler) { if(timer_handler->start_timer==1) { timer_handler->sys_current_timer_count=DelayMiliSeconds/2+SystemTimeMiliCount; timer_handler->start_timer=0; } if(timer_handler->sys_current_timer_count<=SystemTimeMiliCount) { return true; }else { return false; } } //定时数数 void GF_Timer_Count() { SystemTimeMiliCount++; } //将数数写入定时器 void SystemTimer_Intialize() { SystemTimeMiliCount=0; GF_BSP_Interrupt_Add_CallBack( DF_BSP_InterCall_TIM8_2ms_PeriodElapsedCallback, GF_Timer_Count); }