このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
初期化、出力、および終了の動作の指定
setupImpl
および stepImpl
メソッドは、C/C++ 関数を System object™ にフックします。C/C++ デバイス ドライバー コードの作成の詳細については、ハードウェア固有の C/C++ コードの記述を参照してください。出力としてのデジタル ピンの初期化は、モデルの初期化時に 1 回だけ行う必要があります。したがって、MW_gpioInit
関数は setupImpl
で呼び出されます。デジタル出力ピンの論理状態を更新するために、stepImpl
メソッドから MW_gpioWrite
が呼び出されます。終了時には、ハードウェア リソースを解放するために releaseImpl
メソッドから MW_gpioTerminate
が呼び出されます。System object テンプレートの選択で作成した DigitalWrite
System object の初期化、出力、および終了の各コード セクションを更新するには、以下の手順に従います。
MATLAB® エディターで
DigitalWrite.m
クラス ファイルを開きます。次のコードを使用して、
setupImpl
メソッドを更新します。methods (Access=protected) function setupImpl(obj) %#ok<MANU> if isempty(coder.target) % Place simulation setup code here else % Call C-function implementing device initialization coder.cinclude('MW_gpio.h'); coder.ceval('MW_gpioInit', 9, 1); end end ... end
coder.ceval
関数は、digitalio_arduino.h
の C ラッパー関数の呼び出しを実行します。coder.ceval
の 2 番目と 3 番目の引数は、それぞれハードウェアのピン番号とピン モードの値です。次のコードを使用して、
BuildInfo
メソッドを更新します。methods (Static) ... function updateBuildInfo(buildInfo, context) if context.isCodeGenTarget('rtw') % Update buildInfo srcDir = fullfile(fileparts(mfilename('fullpath')),'src'); %#ok includeDir = fullfile(fileparts(mfilename('fullpath')),'include'); addIncludePaths(buildInfo,includeDir); % Use the following API's to add include files, sources and linker flags addSourceFiles(buildInfo,'MW_gpio.c', srcDir); end end ... end
次のコードで
stepImpl
メソッドを更新します。methods(Access=protected) ... function stepImpl(obj,u) %#ok<INUSD> if isempty(coder.target) % Place simulation setup code here else % Call C-function implementing device output coder.ceval('MW_gpioWrite', 9, u); end end ... end
次のコードで
releaseImpl
メソッドを更新します。methods(Access=protected) ... function releaseImpl(obj) %#ok<MANU> if isempty(coder.target) % Place simulation termination code here else % Call C-function implementing device termination coder.ceval('MW_gpioTerminate', 9); end end ... end
次のセクションでは、MATLAB コマンド ラインでの System object のテストを行います。
参考
Digital Write ブロックの作成 | System object テンプレートの選択 | MATLAB コマンド ラインでの System object のテスト