/** * @file Bikebrake.c * @author Wang, Zhiyu(wangzy49@midea.com) * @brief throttle of ebike * @version 0.1 * @date 2021-10-08 * * @copyright Copyright (c) 2021 * */ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives: *************************************************************************/ #include "syspar.h" #include "typedefine.h" #include "mathtool.h" #include "bikebrake.h" //#include "api.h" #include "board_config.h" #include "UserGpio_Config.h" /****************************** * * Parameter * ******************************/ static BIKEBRAKE_OUT bikebrake_stBikeBrakeOut = BIKEBRAKE_OUT_DEFAULT; /*************************************************************** Function: bikebrake_voBikeBrakeInit; Description: bike light control initialization Call by: functions in main loop; Input Variables: N/A Output/Return Variables: N/A Subroutine Call: N/A; Reference: N/A ****************************************************************/ void bikebrake_voBikeBrakeInit(void) { bikebrake_stBikeBrakeOut.uwDetectTimeCnt = 0; bikebrake_stBikeBrakeOut.uwBikeBrakeCnt = 0; bikebrake_stBikeBrakeOut.blBikeBrakeOnFlg = FALSE; } /*************************************************************** Function: bikebrake_voBikeBrakeDetect; Description: bike light control initialization Call by: functions in main loop; Input Variables: N/A Output/Return Variables: N/A Subroutine Call: N/A; Reference: N/A ****************************************************************/ void bikebrake_voBikeBrakeDetect(void) { if (bikebrake_stBikeBrakeOut.blBikeBrakeOnFlg == FALSE && (Get_BRAKE_DETECT_PORT() == RESET))//(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11)!=0) { bikebrake_stBikeBrakeOut.uwBikeBrakeCnt++; if (bikebrake_stBikeBrakeOut.uwBikeBrakeCnt > 10) { bikebrake_stBikeBrakeOut.blBikeBrakeOnFlg = TRUE; bikebrake_stBikeBrakeOut.uwBikeBrakeCnt = 0; bikebrake_stBikeBrakeOut.uwDetectTimeCnt = 0; } } if (bikebrake_stBikeBrakeOut.blBikeBrakeOnFlg == TRUE && Get_BRAKE_DETECT_PORT() != 0) { bikebrake_stBikeBrakeOut.uwBikeBrakeCnt++; if (bikebrake_stBikeBrakeOut.uwBikeBrakeCnt > 10) { bikebrake_stBikeBrakeOut.blBikeBrakeOnFlg = FALSE; bikebrake_stBikeBrakeOut.uwBikeBrakeCnt = 0; bikebrake_stBikeBrakeOut.uwDetectTimeCnt = 0; } } if(bikebrake_stBikeBrakeOut.uwBikeBrakeCnt !=0 ) { bikebrake_stBikeBrakeOut.uwDetectTimeCnt ++; if(bikebrake_stBikeBrakeOut.uwDetectTimeCnt == 50) { bikebrake_stBikeBrakeOut.uwDetectTimeCnt = 0; bikebrake_stBikeBrakeOut.uwBikeBrakeCnt = 0; } } } BOOL BikeBrake_blGetstate(void) { return bikebrake_stBikeBrakeOut.blBikeBrakeOnFlg; } /************************************************************************* End of this File (EOF)! Do not put anything after this part! *************************************************************************/