]> rtime.felk.cvut.cz Git - mf624-simulink.git/blobdiff - sfAnalogOutput.c
Blocks needed for control of mf624 I/O card via SIMULINK.
[mf624-simulink.git] / sfAnalogOutput.c
index a3fa03db6847084450f9198debbc3aad11fc4383..aec11cf0705c0745c08bc193d3e3ebd5d25aacac 100644 (file)
 #define S_FUNCTION_NAME  sfAnalogOutput
 #define S_FUNCTION_LEVEL 2
 
+#define CHNL_PRM(S)     (mxGetScalar(ssGetSFcnParam(S, 0)))
+
 /*
  * Need to include simstruc.h for the definition of the SimStruct and
  * its associated macro definitions.
  */
 #include "simstruc.h"
-#include "mf624.h"
+#include "mf624_SIMULINK.h"
 
 /* Error handling
  * --------------
@@ -62,7 +64,7 @@ static void mdlInitializeSizes(SimStruct *S)
 {
     /* See sfuntmpl_doc.c for more details on the macros below */
 
-    ssSetNumSFcnParams(S, 0);  /* Number of expected parameters */
+    ssSetNumSFcnParams(S, 1);  /* Number of expected parameters */
     if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) {
         /* Return if number of expected != number of actual parameters */
         return;
@@ -86,7 +88,7 @@ static void mdlInitializeSizes(SimStruct *S)
 
     ssSetNumSampleTimes(S, 1);
     ssSetNumRWork(S, 0);
-    ssSetNumIWork(S, 0);
+    ssSetNumIWork(S, 1);
     ssSetNumPWork(S, 1);
     ssSetNumModes(S, 0);
     ssSetNumNonsampledZCs(S, 0);
@@ -107,7 +109,7 @@ static void mdlInitializeSizes(SimStruct *S)
  */
 static void mdlInitializeSampleTimes(SimStruct *S)
 {
-    ssSetSampleTime(S, 0, CONTINUOUS_SAMPLE_TIME);
+    ssSetSampleTime(S, 0, -1);
     ssSetOffsetTime(S, 0, 0.0);
 
 }
@@ -193,6 +195,7 @@ static void mdlOutputs(SimStruct *S, int_T tid)
     else {
         out = (int) ((u[0] + 10) * 8192 / 10 + 0.5);
     }
+    printf("tik\n");
     DAC_write(mfst, DA0, out);
 }