# 시뮬링크작성 ## 기본블록 구성 MATLAB FUNC 블록 코드들 다음과 같이 작성한다. ![내그림](imgs/sim_blk.png) ## MATLAB FUN 블록 작성 MATLAB FUNC 블록을 더블 클릭다여 아래 코드를 작성한다. --- ![내그림](imgs/code.png) --- ```c 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 입력이 되도록 블록을 그려준다. ![내그림](imgs/sim_blk_2.png) ---