X-Git-Url: http://rtime.felk.cvut.cz/gitweb/mf624-simulink.git/blobdiff_plain/629314ef680aff5d27d5be1615805d585fc866b6..f68e0aa7d1b39a46e039a8c3b7bc8cca4ae7e86c:/sfPWMOutput.c diff --git a/sfPWMOutput.c b/sfPWMOutput.c index 605ff76..787dba1 100644 --- a/sfPWMOutput.c +++ b/sfPWMOutput.c @@ -71,10 +71,15 @@ enum {CTR_LAST_MODE_OUT0, CTR_LAST_MODE_OUT1, CTR_LAST_MODE_PWM}; * its associated macro definitions. */ #include "simstruc.h" + + +#ifndef WITHOUT_HW #include "mf624_SIMULINK.h" +#endif /*WITHOUT_HW*/ #define CTR_MAX_PWM_CHANNEL 3 +#ifndef WITHOUT_HW typedef struct { int32_T STATUS_reg; int32_T MODE_reg; @@ -91,6 +96,7 @@ static const ctr_channel_regs_t ctr_channel2regs[] = { {CTR3STATUS_reg, CTR3MODE_reg, CTR3_reg, CTR3A_reg, CTR3B_reg, CTRXCTRL_reg}, {CTR4STATUS_reg, CTR4MODE_reg, CTR4_reg, CTR4A_reg, -1, CTRXCTRL_reg} }; +#endif /*WITHOUT_HW*/ /* Error handling * -------------- @@ -247,6 +253,7 @@ static void mdlStart(SimStruct *S) { int32_T ctr_mode; + #ifndef WITHOUT_HW if (mf624_init(NULL) != 0) return; @@ -263,6 +270,7 @@ static void mdlStart(SimStruct *S) /* Force output low during startup */ ctr_mode = __val2mfld(CTR_MODE_OUTPUT_CONTROL_mask, CTR_MODE_OUTPUT_CONTROL_FORCE_LO); mf624_write32(ctr_mode, MFST2REG(mfst, 4, ctr_channel2regs[IWORK_CHANNEL(S)].MODE_reg)); + #endif /*WITHOUT_HW*/ } #endif /* MDL_START */ @@ -284,6 +292,7 @@ static void mdlOutputs(SimStruct *S, int_T tid) uint32_T T1_uint; uint32_T T2_uint; + #ifndef WITHOUT_HW if (mf624_check(S) != 0) return; @@ -363,6 +372,7 @@ static void mdlOutputs(SimStruct *S, int_T tid) ctr_ctrl <<= IWORK_CHANNEL(S) * CTRXCTRL_CHANNEL_SHIFT; mf624_write32(ctr_ctrl, MFST2REG(mfst, 4, ctr_channel2regs[IWORK_CHANNEL(S)].CTRL_reg)); } + #endif /*WITHOUT_HW*/ } @@ -407,6 +417,7 @@ static void mdlTerminate(SimStruct *S) { int32_T ctr_mode; + #ifndef WITHOUT_HW if (mf624_check(S) == 0) { /* Force output low when finished */ ctr_mode = __val2mfld(CTR_MODE_OUTPUT_CONTROL_mask, CTR_MODE_OUTPUT_CONTROL_FORCE_LO); @@ -414,6 +425,7 @@ static void mdlTerminate(SimStruct *S) } mf624_done(); + #endif /*WITHOUT_HW*/ }