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

7 Ansichten (letzte 30 Tage)
Makoto Nakagawa
Makoto Nakagawa am 10 Jun. 2019
simulink上で
For,Whileを使用し、無限ループ状態とし、
割り込み関数での状態変化を待つ設計は可能でしょうか。
while前後に処理があるため、
whileを時間周期で実行するのは避けたいと考えてます。
int cnt;
/* MAIN*/
int main(void)
{
while(true)
{
if(cnt > 2)
{
break;
}
}
}
/* interrupt */
void interrupt()
{
cnt++;
}

Akzeptierte Antwort

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

Weitere Antworten (0)

Kategorien

Mehr zu Simulink finden Sie in Help Center und File Exchange

Produkte


Version

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!