//***************************************************************************** // (C) Automotive Lighting Reutlingen GmbH // Tuebinger Strasse 123, 72762 Reutlingen, Germany // // Automotive Lighting Reutlingen GmbH owns all the rights to this work. // This work shall not be copied, reproduced, used, modified, transferred // or its information shall not be disclosed without the prior written // authorization of Automotive Lighting Reutlingen GmbH. //***************************************************************************** //----------------------------------------------------------------------------- /// \file CddStp.c /// /// \brief /// /// \author J. Kling ALRT-EES6 (f84304b) /// //----------------------------------------------------------------------------- //============================================================================= // includes //============================================================================= #include #include //-- STATIC_AL #include // C:\temp\FLM3\Asr6\Src\Src_ThirdParty\Src_FLM3\Src_KPIT-FLM3\ApplicationStack\AppMode\MCAL\100_Gpt\ssc\inc\Gpt.h #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #include #include // include-path-issue with project 'Mt_CddStp' #else // Unit-Tests! #define CFA_CNT_STP_88XX (4u) //#include <../../Cust/Bw/Bw16/App/Bsw/Cdd/CddStp/CddStpPrj.h> #include #include #endif // tbd-FLM3 #include // 'ENTER_INIT_RUNNABLE' etc #ifdef CDDSTP_CFG_SIMULATION // defined in '.\Asr6\Src\Src_AL\Cust\Bw\Bw16\App\Bsw\Cdd\CddStp\CddStpPrj.h' #include #endif // CDDSTP_CFG_SIMULATION #include "CddStp.h" //============================================================================= // Preprocessor definitions //============================================================================= //============================================================================= // Private typedefs //============================================================================= //============================================================================= // Private variables //============================================================================= #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #else // Unit-Tests! STATIC_AL uint32 CddStp_Counter_Init; STATIC_AL uint32 CddStp_Counter_DeInit; // yet NOT available in RTE!! STATIC_AL uint32 CddStp_Counter_Cycle; #endif //============================================================================= // Private functions prototypes //============================================================================= STATIC_AL void CddStp_Init(void); STATIC_AL void CddStp_DeInit(void); STATIC_AL void CddStp_Cycle10ms(void); STATIC_AL Std_ReturnType CddStp_StpOff(void); STATIC_AL Std_ReturnType CddStp_StpOn(void); #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #else // Unit-Tests! STATIC_AL uint32 CddStp_Counter_StartRefRun; // jk-obsolet: STATIC_AL void IoHwAb_SetDo(uint16 ChannelId, uint8 Level) { (void)ChannelId; (void)Level; } #endif //============================================================================= // External functions //============================================================================= //============================================================================= // Public functions implementation //============================================================================= //----------------------------------------------------------------------------- /// \brief riCddStpInit /// /// \descr Usually called in fct 'reAL_SWC_Init' in file 'AppInit.c' /// /// \param - /// /// \return void //----------------------------------------------------------------------------- void riCddStpInit(void) { // tbd-FLM3 ENTER_INIT_RUNNABLE(RICDDSTPINIT); #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #else // Unit-Tests! CddStp_Counter_Init = 1; #endif CddStp_Init(); // tbd-FLM3 EXIT_INIT_RUNNABLE(RICDDSTPINIT); } //----------------------------------------------------------------------------- /// \brief CddStp_Init /// /// \descr Usually called in fct 'riCddStpInit' in file 'CddStp.c' /// /// \param - /// /// \return void //----------------------------------------------------------------------------- STATIC_AL void CddStp_Init(void) { #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #else // Unit-Tests! CddStp_Counter_Init++; #endif // Ini Stepper-Timer (HW-Pin-Toggling With u-Steps) CddStp_Tsp_Init(); // Stepper EFT, coding data an mounting side left/right handling CddStp88XX_EftCodingLr(); // jk-obsolet: IoHwAb_SetDo(110, STD_HIGH); // Pin: Stp-NOT-Sleep -> 'High'=NO-Sleep - 110=DioConf_DioChannel_DioChannel_13_6_ST_SLEEP (#define DioConf_DioChannel_DioChannel_HSS_1 88U) (void)CddStp_StpOff(); #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' // call adapted HCM-Code riCddStp_Init(); // in file '.\FLM3\Asr6\Src\Src_AL\Cdd\CddStp\HCM\Cust\ctscCddStp_.c' #else // Unit-Tests! #endif } //----------------------------------------------------------------------------- /// \brief rdCddStpDeInit /// /// \descr De-Init of CddStp /// /// \param - /// /// \return void //----------------------------------------------------------------------------- FUNC(void, ctadCddStp_CODE) rdCddStpDeInit(void) { // tbd-FLM3 ENTER_DE_INIT_RUNNABLE(RICDDSTPDEINIT) #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #else // Unit-Tests! CddStp_Counter_DeInit = 1; #endif (void)CddStp_DeInit(); // tbd-FLM3 EXIT_DE_INIT_RUNNABLE(RICDDSTPDEINIT) } //----------------------------------------------------------------------------- /// \brief CddStp_DeInit /// /// \descr /// /// \param - /// /// \return void //----------------------------------------------------------------------------- STATIC_AL void CddStp_DeInit(void) { #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #else // Unit-Tests! CddStp_Counter_DeInit++; #endif // nothing else to be done return; } //----------------------------------------------------------------------------- /// \brief rpCddStp10ms /// /// \descr (HCM-Code uses 'rpCddStp_Cycle0') /// /// \param - /// /// \return void //----------------------------------------------------------------------------- void rpCddStp10ms(void) { // tbd-FLM3 ENTER_CYCLIC_RUNNABLE(RPCDDSTP10MS); #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #else // Unit-Tests! CddStp_Counter_Cycle = 1; #endif CddStp_Cycle10ms(); // tbd-FLM3 EXIT_CYCLIC_RUNNABLE(RPCDDSTP10MS); } //----------------------------------------------------------------------------- /// \brief CddStp_Cycle10ms /// /// \descr /// /// \param - /// /// \return void //----------------------------------------------------------------------------- STATIC_AL void CddStp_Cycle10ms(void) { #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' #else // Unit-Tests! CddStp_Counter_Cycle++; #endif // FLM3 - should NOT happen in Hongqi-H5 // workaround: 'riCddStpInit' is not called, yet // FLM3 - should NOT happen in Hongqi-H5 { // FLM3 - should NOT happen in Hongqi-H5 STATIC_UT(boolean, boCddStp_Cycle10ms_Initialized, FALSE); // FLM3 - should NOT happen in Hongqi-H5 // // FLM3 - should NOT happen in Hongqi-H5 //This should be placed in CddStp Init Function // FLM3 - should NOT happen in Hongqi-H5 // // FLM3 - should NOT happen in Hongqi-H5 if (boCddStp_Cycle10ms_Initialized == FALSE) // FLM3 - should NOT happen in Hongqi-H5 { // FLM3 - should NOT happen in Hongqi-H5 CddStp_Init(); // FLM3 - should NOT happen in Hongqi-H5 boCddStp_Cycle10ms_Initialized = TRUE; // FLM3 - should NOT happen in Hongqi-H5 } // FLM3 - should NOT happen in Hongqi-H5 } // call adapted HCM-Code rpCddStp_Cycle0(); // in file '.\FLM3\Asr6\Src\Src_AL\Cdd\CddStp\HCM\Cust\ctscCddStp.c' } //----------------------------------------------------------------------------- /// \brief roCddStpOff /// /// \descr Switch stepper OFF /// /// \param - /// /// \return Std_ReturnType //----------------------------------------------------------------------------- Std_ReturnType roCddStpOff(void) { return CddStp_StpOff(); } //----------------------------------------------------------------------------- /// \brief CddStp_StpOff /// /// \descr Switch stepper OFF /// /// \param - /// /// \return Std_ReturnType //----------------------------------------------------------------------------- STATIC_AL Std_ReturnType CddStp_StpOff(void) { #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' CddStp_CtrlFct0((tiulCtrlCmd)CddStp_eCtrlFct0_ModeOff, 0u, NULL); // UWY // jk-tbd ! return (Std_ReturnType)E_SNA; #else // Unit-Tests! return RTE_E_NOK; #endif } //----------------------------------------------------------------------------- /// \brief roCddStpOn /// /// \descr Switch stepper ON /// /// \param - /// /// \return Std_ReturnType //----------------------------------------------------------------------------- Std_ReturnType roCddStpOn(void) { return CddStp_StpOn(); } //----------------------------------------------------------------------------- /// \brief CddStp_StpOn /// /// \descr Switch stepper ON /// /// \param - /// /// \return Std_ReturnType //----------------------------------------------------------------------------- STATIC_AL Std_ReturnType CddStp_StpOn(void) { #ifndef UNIT_TEST // NOT Unit-Tests = 'regular' CddStp_CtrlFct0((tiulCtrlCmd)CddStp_eCtrlFct0_ModeOn, 0u, NULL); // UWY // jk-tbd ! return (Std_ReturnType)E_SNA; #else // Unit-Tests! return RTE_E_NOK; #endif } // EOF