Keil Logo

シグナルの組み合わせ

シグナル関数またはシグナル入力は、簡単に組み合わせることができます。

次のシグナル関数は、「同時に」処理されるように複数のシグナルを呼び出す方法を示しています。

前述の関数を AIN0 VTREG に転送して下さい。

AIN0 = expression.
/*----------------------------------------------------------------------*/
/* Combine the Signals                                                  */
/*----------------------------------------------------------------------*/
//
signal void Startup (void)  {
  swatch (0.1);      // wait 0.1 seconds
  AIN1_Saw ();
  swatch (0.003);    // wait 0.03 seconds
  AIN0_Square ();
  swatch (0.006);    // wait 0.06 seconds
  AIN2_Sine ();
  swatch (0.00000000001);
}


define button "AutoComb", "Startup()"

上のシグナル関数では、次の出力が生成されます。

[ロジックアナライザ](Logic Analyzer)ウィンドウに表示された組み合わせシグナル

次のシグナル関数に示すように、2 つの正弦波を混在させることも可能です。

/*-----------------------------------------------------------------*/
/* Generate a Sine Wave Input                                      */
/*-----------------------------------------------------------------*/
//
signal void mix_sine (float freq1, float freq2)  {
  float sig1;
  float sig2;
  int z;

  z = 0;

  while (z < 10000)  {   // generate 100 mSec sine wave pulse
//
// Generate 1. Sine Wave input signal
//
    sig1 = __sin (((states * freq1) / CLOCK) * 3.1415926 * 2);

//
// Generate 2. Sine Wave input signal
//
    sig2 = __sin (((states * freq2) / CLOCK) * 3.1415926 * 2);

//
// Input: 1. Sine Wave with 0.5V, 2. Sine Wave with 0.2V, offset 2.5V
//
    AIN0 =  (sig1 * 0.5) + (sig2 * 0.2) + 2.5;
    swatch (0.00001);    // wait 10 uSec
    z++;
  }
}


define button "Combine Sin", "mix_sine(300,2000)"

このシグナル関数をコマンドラインから直接呼び出して、2 つの周波数を生成できます。以下に例を示します。

この呼び出しでは、300Hz 振幅 0.5V および 2000Hz 振幅0.2V の入力シグナルを 2.5V のオフセットで生成します。次の[ロジックアナライザ](Logic Analyzer)ウィンドウは、このシグナルを示しています。

[ロジックアナライザ](Logic Analyzer)ウィンドウに表示された混在正弦波シグナル

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.