주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

초기화, 출력 및 종료 조건 지정

setupImplstepImpl 메서드는 C 함수를 System object™에 후킹합니다. 디지털 핀을 출력으로 초기화하는 작업은 모델 초기화 시 한 번만 수행하면 됩니다. 따라서 setupImpl 내에서 MW_gpioInit 함수가 호출됩니다. 디지털 출력 핀의 논리 상태를 업데이트하기 위해, 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의 두 번째 및 세 번째 인수는 각각 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에 대해 출력 포트 속성 설정를 배우게 될 것입니다.

참고 항목

| |