MATLAB Answers

反復サブシステム実行中の割り込みについて

9 ビュー (過去 30 日間)
Makoto Nakagawa
Makoto Nakagawa 2019 年 6 月 10 日
回答済み: Toshinobu Shintai 2019 年 6 月 22 日
simulink上で
For,Whileを使用し、無限ループ状態とし、
割り込み関数での状態変化を待つ設計は可能でしょうか。
while前後に処理があるため、
whileを時間周期で実行するのは避けたいと考えてます。
int cnt;
/* MAIN*/
int main(void)
{
while(true)
{
if(cnt > 2)
{
break;
}
}
}
/* interrupt */
void interrupt()
{
cnt++;
}

  0 件のコメント

サインイン to comment.

採用された回答

Toshinobu Shintai
Toshinobu Shintai 2019 年 6 月 22 日
Simulinkは周期処理を基本とするため、
割り込みなどの非周期処理を設計するのには向いていません。
ただし、出来ないわけではありません。
例えばS-Functionを用いて、clock()によってOSの時間を測定し、
一定時間経過するまで待つ処理をwhileと組み合わせて作成することができます。
もしリアルタイム制御で用いることを想定されていましたら、
無限ループなどの確定的計算時間にならない処理は
可能な限り実装しないようにしてください。

  0 件のコメント

サインイン to comment.

その他の回答 (0 件)

サインイン してこの質問に回答します。

製品


リリース

R2019a