User`s guide

51
{
int_T i;
const real_T *Amtx = &benchmark_P.DiscreteFilter_A[0];
real_T *x = &benchmark_DWork.DiscreteFilter_DSTATE[0];
real_T xtmp = benchmark_P.Constant_Value;
for (i=998; i>0; i--) {
xtmp += Amtx[i]*x[i];
x[i] = x[i-1];
}
x[0] = xtmp + Amtx[0]*x[0];
}
}
benchmark_PrevZCSigState.TriggeredSubsystem_ZCE = (int32_T)
(benchmark_B.DigitalInput > 0U ? POS_ZCSIG : ZERO_ZCSIG);
if (rt_ZCFcn(RISING_ZERO_CROSSING,
&benchmark_PrevZCSigState.TriggeredSubsystem1_ZCE,
(benchmark_B.DiscreteFilter)) != NO_ZCEVENT) {
/* Output and update for trigger system: '<Root>/Triggered Subsystem1' */
/* S-Function Block: <S3>/Read From Timer2 (smemsrc) */
{
/* Memory Mapped Input */
const uint16_T *memind = (uint16_T *) 29697U;
benchmark_B.ReadFromTimer2 = *(uint16_T*)(memind++);
}
/* S-Function Block: <S3>/Write Timer2 To Memorypos. (smemsnk) */
{
/* Memory Mapped Output */
const uint16_T *memind = (uint16_T *) 2147483711U;
*(uint16_T *)(memind++) = (uint16_T) benchmark_B.ReadFromTimer2;
}
}
UNUSED_PARAMETER(tid);
}
/* Model update function */
static void benchmark_update(int_T tid)
{
/* Update absolute time for base rate */
if (!(++benchmark_M->Timing.clockTick0))
++benchmark_M->Timing.clockTickH0;
benchmark_M->Timing.t[0] = benchmark_M->Timing.clockTick0 *
benchmark_M->Timing.stepSize0 + benchmark_M->Timing.clockTickH0 *
benchmark_M->Timing.stepSize0 * 4294967296.0;
UNUSED_PARAMETER(tid);
}
/* Model initialize function */
void benchmark_initialize(boolean_T firstTime)
{
(void)firstTime;
/* Registration code */
/* initialize real-time model */
(void) memset((char_T *)benchmark_M,0,
sizeof(RT_MODEL_benchmark));