How to generate code for a Switch Block using if-else statements

2 ビュー (過去 30 日間)
dayoung
dayoung 2025 年 3 月 14 日
コメント済み: Walter Roberson 2025 年 3 月 18 日
Now I'm using Autosar - Generate Code
I want to generate Switch block to if-else statements
but always generate like below
how could i fix this
/* Switch: '<S14>/Switch' */
rtb_Switch = (sint16)asr_s32(rtu_Isig_ObjectInfo * 6711, 26U);

回答 (1 件)

Kilsu Kim
Kilsu Kim 2025 年 3 月 18 日
해당 문의 사항은 기술 지원팀 케이스에서 답변드렸습니다.
위 코드가 생성된 이유는 Switch 블록에 입력되는 "Isig_ObjectInfo" 신호가 고정 소수점 데이터 형이기 때문입니다. 데이터 형을 일반 정수형으로 (예: int16) 변경하시면 원하시는 코드를 생성하실 수 있습니다.
감사합니다.
  1 件のコメント
Walter Roberson
Walter Roberson 2025 年 3 月 18 日
Approximate translation of @Kilsu Kim
The question was answered in the technical support case.
The reason the above code was generated is because the "Isig_ObjectInfo" signal input to the Switch block is a fixed-point data type. If you change the data type to a general integer type (e.g. int16), you can generate the code you want.
Thank you.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAUTOSAR Blockset についてさらに検索

タグ

製品


リリース

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by