firstcommit
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
|
||||
# 시뮬링크작성
|
||||
|
||||
|
||||
|
||||
## 기본블록 구성
|
||||
|
||||
|
||||
MATLAB FUNC 블록 코드들 다음과 같이 작성한다.
|
||||
|
||||

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

|
||||
|
||||
---
|
||||
|
||||
|
||||
```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 입력이 되도록 블록을 그려준다.
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user