]> rtime.felk.cvut.cz Git - mf624-simulink.git/blobdiff - sfDigitalOutput.c
MF624 demo including ADC, DAC, DIN, DOUT and IRC.
[mf624-simulink.git] / sfDigitalOutput.c
index 9d4d81b4d3c13104451f33f0df06c7f5a63a7417..81c06077864daa189e0945e32e8c2f964754c4b1 100644 (file)
@@ -146,7 +146,7 @@ static void mdlInitializeSampleTimes(SimStruct *S)
    */
   static void mdlStart(SimStruct *S)
   {
-    if (mf624_init(S) != 0)
+    if (mf624_init(NULL) != 0)
        return;
     mfst->DOut=0;
     
@@ -163,6 +163,10 @@ static void mdlInitializeSampleTimes(SimStruct *S)
 static void mdlOutputs(SimStruct *S, int_T tid)
 {
     const real_T *u = (const real_T*) ssGetInputPortSignal(S,0);
+
+    if (mf624_check(S) != 0)
+           return;
+
     if(u[0] > 0.5){
         /*Update the "word" holding Output Values*/
         mfst->DOut |= (1 << (int)(CHNL_PRM(S)-1));
@@ -215,10 +219,7 @@ static void mdlOutputs(SimStruct *S, int_T tid)
  */
 static void mdlTerminate(SimStruct *S)
 {
-    if(mfst!=NULL){
-        free(mfst);
-        mfst=NULL;
-    }
+       mf624_done();
 }