]> rtime.felk.cvut.cz Git - mf624-simulink.git/blobdiff - sfPWMOutput.c
Add build mode WITHOUT_HW to edit model without MF624 hardware access.
[mf624-simulink.git] / sfPWMOutput.c
index 605ff763fc46eb062f1927fcc4d0b77d27e5d52e..787dba1c7b94c8b5d7da2716ba3db346672d6780 100644 (file)
@@ -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*/
 }