시뮬링크작성
기본블록 구성
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 입력이 되도록 블록을 그려준다.
