⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c2812rtdxtest.c

📁 由MATLAB生成的RTDX的源代码
💻 C
字号:
/*
 * File: c2812rtdxtest.c
 *
 * Real-Time Workshop code generated for Simulink model c2812rtdxtest.
 *
 * Model version                        : 1.890
 * Real-Time Workshop file version      : 6.3  (R14SP3)  26-Jul-2005
 * Real-Time Workshop file generated on : Sun Dec 14 16:57:41 2008
 * TLC version                          : 6.3 (Aug  5 2005)
 * C source code generated on           : Sun Dec 14 16:57:43 2008
 */

#include "c2812rtdxtest.h"
#include "c2812rtdxtest_private.h"

RTDX_CreateInputChannel(Freq_ichan);    /* Channel Freq_ichan for block <Root>/Sine Frequency */
RTDX_CreateInputChannel(Amp_ichan);     /* Channel Amp_ichan for block <Root>/Sine Amplitude */
RTDX_CreateOutputChannel(sine_ochan);   /* Channel sine_ochan for block <Root>/Sine Values */

/* Block signals (auto storage) */
BlockIO_c2812rtdxtest c2812rtdxtest_B;

/* Real-time model */
RT_MODEL_c2812rtdxtest c2812rtdxtest_M_;
RT_MODEL_c2812rtdxtest *c2812rtdxtest_M = &c2812rtdxtest_M_;

/* Model step function */
void c2812rtdxtest_step(void)
{

  /* local block i/o variables*/
  real32_T rtb_TrigonometricFunction[100];
  real32_T rtb_Product2[100];

  /* S-Function Block: <Root>/Sine Frequency (rtdx_src) */
  RTDX_readNB( &Freq_ichan, (void*) &c2812rtdxtest_B.SineFrequency,
   1*sizeof(real32_T));

  {
    int16_T i1;
    for(i1 = 0; i1 < 100; i1++) {

      /* Trigonometry: '<Root>/Trigonometric Function' incorporates:
       *  Product: '<Root>/Product1'
       *  Constant: '<Root>/Input Data'
       */
      rtb_TrigonometricFunction[i1] =
        (real32_T)sin((c2812rtdxtest_ConstP.InputData_Value[i1]) *
        c2812rtdxtest_B.SineFrequency);
    }
  }

  /* S-Function Block: <Root>/Sine Amplitude (rtdx_src) */
  RTDX_readNB( &Amp_ichan, (void*) &c2812rtdxtest_B.SineAmplitude,
   1*sizeof(real32_T));

  {
    int16_T i1;
    for(i1 = 0; i1 < 100; i1++) {

      /* Product: '<Root>/Product2' incorporates:
       *  Constant: '<Root>/Input Data'
       *  Product: '<Root>/Product1'
       *  Trigonometry: '<Root>/Trigonometric Function'
       */
      rtb_Product2[i1] = rtb_TrigonometricFunction[i1] *
        c2812rtdxtest_B.SineAmplitude;
    }
  }

  /* S-Function Block: <Root>/Sine Values (rtdx_snk) */
  while ( RTDX_writing != NULL) {}      /* waiting for rtdx write to complete */
  RTDX_write( &sine_ochan, (void*) rtb_Product2, 100*sizeof(real32_T));
}

/* Model initialize function */

void c2812rtdxtest_initialize(boolean_T firstTime)
{

  if (firstTime) {

    /* initialize error status */
    rtmSetErrorStatus(c2812rtdxtest_M, (const char_T *)0);

    /* block I/O */
    {

      int_T i;
      void *pVoidBlockIORegion;
      pVoidBlockIORegion = (void *)(&c2812rtdxtest_B.SineFrequency);
      for (i = 0; i < 2; i++) {
        ((real32_T*)pVoidBlockIORegion)[i] = 0.0F;
      }
    }

    /* initialize non-finites */
    rt_InitInfAndNaN(sizeof(real_T));

    /* S-Function Block: <Root>/Sine Frequency (rtdx_src) */
    {
      RTDX_enableInput(&Freq_ichan);

      c2812rtdxtest_B.SineFrequency = (real32_T) 0.0F;
    }

    /* S-Function Block: <Root>/Sine Amplitude (rtdx_src) */
    {
      RTDX_enableInput(&Amp_ichan);

      c2812rtdxtest_B.SineAmplitude = (real32_T) 0.0F;
    }

    RTDX_enableOutput(&sine_ochan);     /* S-Function Block: <Root>/Sine Values (rtdx_snk) */
  }
}

/* Model terminate function */

void c2812rtdxtest_terminate(void)
{

  RTDX_disableInput(&Freq_ichan);       /* S-Function Block: <Root>/Sine Frequency (rtdx_src) */

  RTDX_disableInput(&Amp_ichan);        /* S-Function Block: <Root>/Sine Amplitude (rtdx_src) */

  RTDX_disableOutput(&sine_ochan);      /* S-Function Block: <Root>/Sine Values (rtdx_snk) */
}

/* File trailer for Real-Time Workshop generated code.
 *
 * [EOF]
 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -