メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

初期化、出力、および終了の指定

setupImpl および stepImpl メソッドは、C 関数を System object™ にフックします。出力としてのデジタル ピンの初期化は、モデルの初期化時に 1 回だけ行う必要があります。したがって、MW_gpioInit 関数は setupImpl で呼び出されます。デジタル出力ピンの論理状態を更新するために、stepImpl メソッドから MW_gpioRead が呼び出されます。終了時には、ハードウェア リソースを解放するために releaseImpl メソッドから MW_gpioTerminate が呼び出されます。System object テンプレートの選択で作成した DigitalRead System object の初期化、出力、および終了の各コード セクションを更新するには、以下の手順に従います。

  1. MATLAB® エディターで DigitalRead.m クラス ファイルを開きます。

  2. 次のコードを使用して、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.cinlcude('MW_gpio.h');
                coder.ceval('MW_gpioInit', 9, 0);
            end
        end
        ...
    end

    coder.ceval 関数は、MW_gpio.h の C ラッパー関数の呼び出しを実行します。coder.ceval の 2 番目と 3 番目の引数は、それぞれ ARM® Cortex®–A ハードウェア ボードのピン番号と値です。

  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
  4. 次のコードで stepImpl メソッドを更新します。

    methods(Access=protected)
        ...
        function y = stepImpl(obj) %#ok<MANU>
            y = double(0);
            if isempty(coder.target)
                % Place simulation output code here
            else
                % Call C-function implementing device output
                y = coder.ceval('MW_gpioRead', 9);
            end
        end
        ...
    end

    DigitalWrite System object とは異なり、DigitalRead System object の stepImpl メソッドは、選択されたピンの論理値である出力 y を定義します。

  5. 次のコードで 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

次のセクションでは、System object の出力端子のプロパティの設定を行います。

参考

| |