티스토리 뷰
이번엔 실제 코드를 가지고 LED의 불빛을 제어해보도록 하자.
# 지난번 진행한 코드
이렇게 되면 DDRB 에서는 LED가 연결된 5번비트를 출력으로 바꿔줬고,
PORTB에서는 동일한 5번비트를 1로 써줘서 High상태로 출력을 만들어줬다.
실제 이 코드를 한번 보드에 옮겨서 실행을 해보자.
# 하단의 깜빡이는 LED를 코드를 입력하여 제어해보도록 하자.
# 보드를 연결하면 현재 컴퓨터에 연결된 장비가 아트멜스튜디오상에 표시된다.
코드를 실행하기에 앞서 지난번에 설정해둔 설정을 변경해주어야한다.
# 실제 보드를 연결하였기 때문에, 속성(Properties) 창에서 연결된 장비를 선택해주고 인터페이스를 설정해준다.
인터페이스에는 ISP와 debugWIRE 이 두개중에 선택할 수 있는데,
ISP는 디버깅을 하지않고, 단순히 작성된 프로그램을 MCU로 옮길때 사용하는 모드다
debugWIRE는 JTAG디버깅을 지원하는 모드다.
따라서 우리는 debugWIRE를 선택하고 메인에서 다시 디버그모드로 돌아가자.
그러면 원래 깜빡이던 LED의 불빛이 계속 들어와있는것을 확인 할 수 있다.
# 위와같이 디버깅을 진행해보면 PORTB에 값이 쓰여지는 순간 LED가 켜지는것을 확인할 수 있다.
그럼 이번엔 끄는 코드를 삽입해보도록 하자.
# 위와같이 코드를 작성하고 Break-point를 걸어 둔 뒤 디버그를 시작해보자
# 이와같이 PORTB의 5번비트에 값이 할당 되는지 안되는지에 따라 LED를 제어할 수 있다.
참고로 칩셋의 중앙 상단에 위치한 초록색 LED는 JTAG의 동작을 표시해주는 LED이므로
우리가 제어하고있는 LED가 아니다.
이번에는 while루프 안에서 켰다 꺼졌다를 시간제한을 걸어 지속적으로 제어가 되고 있음을 나타내보도록 하자.
# 위와같이 delay를 걸어준다.
#define으로 현재 보드의 mhz를 정의해주고, delay헤더를 include 한 뒤, 500ms간 딜레이를 걸어줬다.
위와같이 작성한 뒤 실행시켜보면 불빛이 깜빡깜빡이는것을 확인 할 수 있다.
'EMBEDDED > 8-bit AVR' 카테고리의 다른 글
6) OR연산을 이용하여 특정비트 1로 만들기 (0) | 2018.04.21 |
---|---|
5) 이진수 표현과 쉬프트 연산자 사용 (0) | 2018.04.20 |
3) LED켜기 & 시뮬레이터 디버깅 (0) | 2018.04.18 |
2) Atmel Studio 7.0 설치&프로젝트 생성 (0) | 2018.04.12 |
1) Introduction (0) | 2018.04.11 |