Skip to content

시뮬링크작성

기본블록 구성

MATLAB FUNC 블록 코드들 다음과 같이 작성한다.

내그림

MATLAB FUN 블록 작성

MATLAB FUNC 블록을 더블 클릭다여 아래 코드를 작성한다.


내그림


function led = fcn(key0, key1, key2, key3)
%#codegen

persistent mode;
persistent cnt;
persistent led_state;

if isempty(mode)
    mode = uint8(0);       % 0 = OFF
end

if isempty(cnt)
    cnt = uint32(0);
end

if isempty(led_state)
    led_state = false;
end

% -----------------------------
% 1. KEY 입력에 따라 모드 저장
% -----------------------------
if key0
    mode = uint8(0);       % OFF
elseif key1
    mode = uint8(1);       % SLOW
elseif key2
    mode = uint8(2);       % NORMAL
elseif key3
    mode = uint8(3);       % FAST
end

% -----------------------------
% 2. 모드에 따라 깜빡임 주기 선택
% 50MHz 클럭 기준
% -----------------------------
period = uint32(0);

if mode == uint8(0)
    period = uint32(0);          % OFF
elseif mode == uint8(1)
    period = uint32(50000000);   % 느림
elseif mode == uint8(2)
    period = uint32(25000000);   % 보통
else
    period = uint32(5000000);    % 빠름
end

% -----------------------------
% 3. LED 출력 생성
% -----------------------------
if mode == uint8(0)
    led_state = false;
    cnt = uint32(0);
else
    if cnt >= period
        cnt = uint32(0);
        led_state = ~led_state;  % LED 반전
    else
        cnt = cnt + uint32(1);
    end
end

led = led_state;

end

블록작성완료

선으로 연결하여, 최종 블록 작성을 완료한다. Key 입력이 되도록 블록을 그려준다.

내그림