Counter
指定した数値範囲でのカウント アップまたはカウント ダウン

ライブラリ:
DSP System Toolbox /
Signal Management /
Switches and Counters
説明
Counter ブロックは、指定された数値範囲内をカウント アップまたはカウント ダウンします。[カウント方向] パラメーターを [Up]
に設定すると、ブロックは [Inc] (インクリメント) 端子を有効にします。[カウント方向] パラメーターを [Down]
に設定すると、ブロックは [Dec] (デクリメント) 端子を有効にします。[カウント イベント] パラメーターを [フリー ラン]
に設定すると、ブロックは [Inc] 端子または [Dec] 端子を無効にして、一定の時間間隔でカウントします。[カウント イベント] パラメーターのその他すべての設定については、[Inc] 入力端子または [Dec] 入力端子でトリガー イベントが発生するたびに、ブロックがカウンターをインクリメントまたはデクリメントします。オプションの [Rst] 端子でトリガー イベントが発生した場合、ブロックはカウンターを初期状態にリセットします。
Counter ブロックは単一チャネル入力を受け入れます。スカラー入力の処理、ベクトル入力の処理、フリーランの処理の詳細については、アルゴリズムを参照してください。
例
この例では、Counter ブロックを使用して、数値範囲内をカウント ダウンする方法を示します。Pulse Generator ブロックは Counter ブロックの "Dec" 端子を駆動し、N-Sample Enable ブロックは "Rst" 端子をトリガーします。Counter ブロックからのすべての入出力は、4 端子の Mux ブロックを使用して単一の To Workspace ブロックに多重化されます。
次の図は、4 列出力 dsp_examples_yout
の最初の 22 個のサンプルを示しています。
Counter ブロックの "Dec" と "Rst" 両方の端子への 7 番目の入力サンプルがトリガー イベント (立ち上がりエッジ) を表していることがわかります。この場合、ブロックはまずカウンターを初期値である 5
にリセットし、その後すぐにカウンターを 4
にデクリメントします。カウンターが最小値 0
に到達すると、ブロックは次回に "Dec" 端子でトリガー イベントが発生した際に最大値 20
でカウンターを再スタートさせます。
端子
入力
ブロックがカウンターをインクリメントまたはデクリメントするタイミングを決定するために使用される入力信号。実数値のスカラーまたはベクトルとして指定します。[Inc] 端子または [Dec] 端子への入力がベクトルの場合、ブロックはベクトルをフレームとして扱います。[Inc] 入力端子または [Dec] 入力端子でトリガー イベントが発生するたびに、ブロックがカウンターをそれぞれインクリメントまたはデクリメントします。[カウント イベント] パラメーターを使用してトリガー イベントのタイプを制御します。
依存関係
[カウント方向] パラメーターを [Up]
に設定すると、ブロックは [Inc] (インクリメント) 端子を有効にします。
[カウント方向] パラメーターを [Down] に設定すると、ブロックは [Dec]
(デクリメント) 端子を有効にします。
[カウント イベント] パラメーターを [フリー ラン]
に設定すると、ブロックは [Inc]/[Dec] 入力端子を無効にします。フリー ラン モードでは、ブロックは一定の時間間隔でカウントします。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
ブロックがカウンターをリセットするタイミングを決定するために使用される入力信号。実数値のスカラーとして指定します。[Rst] 端子は [Inc] 入力端子または [Dec] 入力端子と同じ端子サンプル時間をもっていなければなりません。[Rst] 端子でトリガー イベントが発生するたびに、ブロックはカウンターを初期状態にリセットします。トリガー イベントの詳細については、カウント イベントを参照してください。
依存関係
この端子を有効にするには、[リセット入力] チェック ボックスをオンにします。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
最大カウンター サイズを [カウントのデータ型] が表現できる任意の符号なし整数として指定します。カウンター値の範囲は 0
から [Max] 端子への入力として指定する値までとなります。
依存関係
この端子を有効にするには、[カウンター サイズ] パラメーターを [Specify via input port]
に設定します。
データ型: uint8
| uint16
| uint32
出力
カウンターの現在の値。スカラーまたはベクトルとして指定します。[カウント イベント] パラメーターを [フリー ラン]
に設定すると、[Cnt] 出力は M の各連続サンプル時間でのカウント値を含む M 行 1 列のベクトルであり、M は [出力フレームあたりのサンプル数] パラメーターで指定する値です。
依存関係
この端子を有効にするには、[出力] パラメーターを [Count]
または [Count and Hit]
に設定します。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
[ヒット値] パラメーターで指定した整数値のヒット ステータス。指定する値がカウントで発生すると、ブロックは [Hit] 端子で 1
を出力します。
メモ
[ヒットのデータ型] パラメーターの設定によって、ブロックが [Hit] 出力端子からブール値を出力することがあります。
依存関係
この端子を有効にするには、[出力] パラメーターを [Hit]
または [Count and Hit]
に設定します。
データ型: Boolean
| Logical
パラメーター
カウントを [Up]
に行うか [Down]
に行うかを指定します。ブロック アイコンの端子ラベルは、このパラメーターの値に基づいて [Inc] (インクリメント) または [Dec] (デクリメント) に変化します。
[カウント方向] パラメーターを
[Up]
に設定した場合、カウンターがカウンター範囲の上限に到達すると、ブロックは次回に [Inc] 端子でトリガー イベントが発生した際にカウンターをゼロで再スタートさせます。[カウント方向]
パラメーターを [Down] に設定した場合、カウンターがゼロに到達すると、ブロックは次回に [Dec] 端子でトリガー イベントが発生した際にカウンター範囲の上限でカウンターを再スタートさせます。
このパラメーターは Simulink® のノーマル モードで調整可能 (Simulink)です。
調整可能: Yes
[Inc]/[Dec] 端子または [Rst] 端子での受信時に、ブロックがカウンターのインクリメント、デクリメントまたはリセットをトリガーするイベントのタイプを指定します。以下の選択肢があります。
立ち上がりエッジ
— [Inc]/[Dec] 端子または [Rst] 端子への入力が次のいずれかの動作を行う場合、カウントまたはリセット操作をトリガーします。負の値から正の値またはゼロに立ち上がる。
ゼロから正の値に立ち上がる。この場合、立ち上がりは負の値からゼロへの立ち上がりと連続していません (次の図を参照)。
立ち下がりエッジ
— [Inc]/[Dec] 端子または [Rst] 端子への入力が次のいずれかの動作を行う場合、カウントまたはリセット操作をトリガーします。正の値から負の値またはゼロに立ち下がる。
ゼロから負の値に立ち下がる。この場合、立ち下がりは正の値からゼロへの立ち下りと連続していません (次の図を参照)。
両エッジ
— [Inc]/[Dec] 端子または [Rst] 端子への入力が[立ち上がりエッジ]
または[立ち下がりエッジ]
の場合、カウントまたはリセット操作をトリガーします。非ゼロのサンプル
— [Inc]/[Dec] 端子または [Rst] 端子への入力がゼロでない場合、各サンプル時間でカウントまたはリセット操作をトリガーします。フリー ラン
— [Inc]/[Dec] 端子を無効にし、[出力フレームあたりのサンプル数] と [サンプル時間] の両ブロック パラメーターを有効にします。ブロックはカウンターのインクリメントまたはデクリメントを一定の間隔 Ts で行います。これは [サンプル時間] パラメーターを使って指定します。詳細については、フリーランの処理を参照してください。このモードでは、ブロックは [Rst] 端子で非ゼロのサンプルを受信するたびにカウンターをリセットします。
依存関係
このパラメーターを [フリー ラン]
に設定すると、ブロックは [Inc]/[Dec] 端子を無効にして [サンプル時間] パラメーターで指定した一定の間隔でカウントします。
ブロックがカウントを行う整数値の範囲を指定します。ブロックがカウンター範囲全体をカウントし終わった場合、次回に [Inc]/[Dec] 端子でトリガー イベントが発生した際に、ブロックはカウンターを以下のようにリセットします。
[カウント方向] パラメーターを
[Up]
に設定した場合に、カウンターがカウンター範囲の上限に到達すると、ブロックはカウンターをゼロで再スタートさせます。[カウント方向] パラメーターを
[Down]
に設定した場合に、カウンターがゼロに到達すると、ブロックはカウンター範囲の上限でカウンターを再スタートさせます。
[カウンター サイズ] パラメーターは、以下のいずれかのオプションに設定することができます。
8 bits
—0
から255
の範囲でカウンターを指定します。16 bits
—0
から65535
の範囲でカウンターを指定します。32 bits
—0
から2
32–1
の範囲でカウンターを指定します。ユーザー定義
— [最大カウント] パラメーターを有効にします。これにより、カウントの上限を [カウントのデータ型] が表現できる任意の符号なし整数として指定することができます。カウンター値の範囲は0
から [最大カウント] パラメーターの値までとなります。Specify via input port
— [Max] 入力端子を有効にします。これにより、カウントの上限を [カウントのデータ型] が表現できる任意の符号なし整数として指定することができます。カウンター値の範囲は0
から [Max] 端子への入力として指定する値までとなります。
カウンターの最大値を指定する場合、[カウンターのデータ型] パラメーターに指定するデータ型で表現可能な任意の符号なし整数です。Simulink のノーマル モードで調整可能 (Simulink)です。
調整可能: Yes
依存関係
このパラメーターを有効にするには、[カウンター サイズ] を [ユーザー定義]
に設定します。
カウンターの初期値を [カウンター サイズ] パラメーターで定義された範囲の任意の符号なし整数として指定します。ブロックはシミュレーションの開始時にカウンターの初期値を使用し、[Rst] 端子でトリガー イベントが発生するたびにカウンターをその初期値へリセットし直します。
調整可能: Yes
有効にする出力端子を選択します。[Count]
、[Hit]
または [Count and Hit]
の各端子を選択して有効にすることができます。
カウント中に発生した際に、(オプションの) [Hit] 出力端子で 1
のフラグを設定する必要がある整数または整数ベクトルを指定します。このパラメーターは、[出力] パラメーターを [Hit
] または [Count and Hit]
に設定した場合にのみ表示されます。
調整可能: Yes
このチェック ボックスをオンにして [Rst] 入力端子を有効にします。[Rst] 端子を有効にすると、[Rst] 端子でトリガー イベントが発生するたびに、ブロックはカウンターを初期値にリセットします。カウンターのリセットをトリガーするイベントのタイプを指定するには、[カウント イベント] パラメーターを設定します。[リセット入力] チェック ボックスをオフにすると、シミュレーション中にカウンターをリセットすることはできません。
各出力ベクトルのサンプル数 M を正の整数で指定します。
依存関係
このパラメーターを有効にするには、[カウント イベント] を [フリー ラン]
に設定します。
ブロックがフリー ラン モードの場合、カウンターをインクリメントまたはデクリメントする一定の間隔 Ts を指定します。ゼロ以上のスカラーを指定するか、-1
の値を指定してサンプル時間を継承できます。
たとえば、ブロックでカウンターを 5
秒ごとにインクリメントするには、[カウント方向] パラメーターを [Up]
に、[カウント イベント] パラメーターを [フリー ラン]
に設定し、[サンプル時間] パラメーターで 5
の値を指定します。フリー ラン モードでは、出力端子のサンプル時間は常に MTs です。
依存関係
このパラメーターを有効にするには、[カウント イベント] を [フリー ラン]
に設定します。
[Cnt] 端子での出力のデータ型を指定します。
依存関係
このパラメーターを有効にするには、[出力] パラメーターを [Count]
または [Count and Hit]
に設定します。
[Hit] 端子での出力のデータ型を指定します。
依存関係
このパラメーターを有効にするには、[出力] パラメーターを [Hit]
に設定するか、[カウントのデータ型] パラメーターを [Double]
に設定した状態で [Count and Hit]
に設定します。
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
アルゴリズム
[カウント方向] パラメーターを [Up]
に設定すると、[Inc] (インクリメント) 入力端子のトリガー イベントがブロックでカウンターを 1 つ増加させます。リセット イベントは発生しないと仮定し、ブロックは、カウンター値がカウントの上限に達するまでトリガーされるたびに増加させ続けます。次回に [Inc] 端子でトリガー イベントが発生すると、ブロックは 0
でカウンターを再スタートさせ、[Inc] 端子で後続のトリガー イベントが発生するたびにカウンター値を再び 1 ずつ増加させていきます。
[カウント方向] パラメーターを [Down]
に設定すると、[Dec] (デクリメント) 入力端子のトリガー イベントがブロックでカウンターを 1 つ減少させます。リセット イベントは発生しないと仮定すると、ブロックはトリガーのたびに、ゼロに達するまでカウンターの減少を続けます。次回に [Dec] 端子でトリガー イベントが発生すると、ブロックはカウントの上限でカウンターを再スタートさせ、[Dec] 端子で後続のトリガー イベントが発生するたびにカウンター値を再び 1 ずつ減少させていきます。
トリガー イベント間では、ブロックは最新の値で出力を保持します。[カウント イベント] パラメーターで指定されたトリガー イベントがオプションの [Rst] 入力端子で発生すると、ブロックはカウンターを初期状態にリセットします。[Inc]/[Dec] および [Rst] の各端子が同時にトリガー イベントを受信すると、ブロックは最初にカウンターをリセットしてから、インクリメントまたはデクリメントを適宜実行します。シミュレーション中にカウンターをリセットする必要がない場合、[リセット入力] チェック ボックスをオフにして [Rst] 端子を無効にできます。
[出力] パラメーターを使うと、ブロックが出力する値を指定できます。
[Count]
は [Cnt] 出力端子をブロック上で有効にします。[Cnt] 端子はカウンターの現在の値をスカラー値として提供します。[Cnt] 出力端子は [Inc]/[Dec] 入力端子と同じ端子サンプル時間をもちます。[Hit]
は [Hit] 出力端子をブロック上で有効にします。カウンターの値が [ヒット値] パラメーターで指定する整数のいずれとも等しくならないとき、[Hit] 端子はゼロを生成します。[ヒット値] パラメーターには整数または整数のベクトルを指定することができます。カウンターの値が [ヒット値] パラメーターに指定する値の 1 つ以上と等しくなると、ブロックは [Hit] 出力端子で1
の値を出力します。[Hit] 出力端子は [Inc]/[Dec] 入力端子と同じ端子サンプル時間をもちます。[Count and Hit]
は [Cnt] と [Hit] の両方の出力端子を有効にします。
ブロックは [Inc]/[Dec] 端子へのベクトル入力をフレームとして扱います。ベクトルの処理はスカラーの処理と同じですが、[Inc]/[Dec] 入力ベクトルに含まれているトリガー イベントの合計件数によって、ブロックがカウンターをインクリメントまたはデクリメントする点が異なります。したがって、単一の [Inc]/[Dec] 入力ベクトルの処理中にカウンターが複数回変更することがあります。
ブロックに [Hit] 端子がある場合、[Inc]/[Dec] 入力ベクトルの処理中に [ヒット値] のいずれかがカウンター値のいずれかと一致すると、ブロックは 1
の値を出力します。
トリガー イベントが 2 つの連続するベクトル間で分割されると、そのイベントはイベントの完了が含まれるベクトル内でカウントされます。[Rst] 端子が [Inc]/[Dec] 端子と同時にトリガー イベントを受信すると、ブロックは最初にカウンターをリセットします。その後、ブロックは [Inc]/[Dec] 入力ベクトルに含まれているトリガー イベント数でカウンターをインクリメントまたはデクリメントします。
[Inc]/[Dec] 端子への入力が長さ N のベクトルの場合、[Inc]/[Dec] 入力端子の端子サンプル時間は入力のフレーム周期と等しいか、または入力信号のサンプル時間の N 倍となります。[Cnt] 出力端子および [Hit] 出力端子の端子サンプル時間は、[Inc]/[Dec] 入力端子のサンプル時間と同じです。
[カウント イベント] パラメーターで [フリー ラン]
を選択すると、ブロックはフリー ラン モードで動作します。
[Inc]/[Dec] 入力端子はこのモードでは無効になっており、ブロックは単純に [サンプル時間] パラメーターを使用して指定する一定の間隔 Ts でカウンターをインクリメントまたはデクリメントします。
このモードでは、[Rst] 端子は常に [カウント イベント] パラメーターが [非ゼロのサンプル]
に設定されているかのように動作します。したがって、ブロックは [Rst] 入力が非ゼロの各サンプル時間でリセット イベントをトリガーします。
このモードでは、[Cnt] 出力は M の各連続サンプル時間でのカウント値を含む M 行 1
列のベクトルであり、M は [出力フレームあたりのサンプル数] パラメーターで指定する値です。[Hit] 出力は、これらの M の各連続サンプル時間でヒット ステータス (0
または 1
) を含む M 行 1
列のベクトルです。[Cnt] および [Hit] の両方の出力端子は MTs の端子サンプル時間をもちます。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)