티스토리 뷰
XPlained 보드에 아두이노 보드를 연결하여 실습을 진행해보도록 하자.
# Basic Shield에는 8개의 LED가 붙어있다. 8개의 LED를 비트연산을 통해 알아보도록 하자.
# 사용법은 간단하다. 그냥 맞물리는 두개를 합체시켜서 사용하면 된다.
이중에서도 위에 표시된 점퍼(Jumper) 라는것은, 이 보드가 LED외에도 여러 다른 기능들을 넣어놨기때문에
이를 이용해서 어떤기능을 이용할 지 선택을 해 주는것이다.
기본 셋팅이 LED에 가있으므로, 그대로 두면 된다.
Basic Shield의 LED는 아두이노의 경우 디지털 출력 번호로 붙지만, XPlained를 사용하고있기 때문에
어디에 연결이 되어있는지 알고 있어야 한다.
LED는 포트D의 8개의 비트에 각각 연결이 되어있는 상태다.
그렇기 때문에 DDRD의 8개비트 모두 1로 만들어서 출력상태로 만들어 줘야하고,
출력을 원하는 포트D의 비트를 1로 만들어주면 High신호를 출력하며 LED에 빛이 들어온다.
따라서 출력을 하기위한 비트들을 어떻게 설정할 지 한번 알아보도록 하자.
# DDRD를 모두 출력으로 설정 해 줬다.
먼저 PORTD에 10진수를 입력하여 어떤식으로 LED가 출력되는지 알아보자.
# 중단점을 걸고 하나씩 실행해 보면 된다.
디버거의 특성상 최초 한바퀴는 그냥 돌고, 그 이후부터 실행이 된다.
디버거를 한줄씩 실행시켜보면 점점 불빛이 들어오는 개수가 변하는것을 확인 할 수 있다.
# 이렇게 불빛의 개수가 변하며 켜진다.
하지만 여러 이유(각 포트별 제어 등..)로 이진수를 사용해서 제어하는것이 일반적이다.
# 위와같이 작성 후 디버깅을 돌려보면 실행할 때 마다 한쪽씩 왼쪽으로 가는것을 확인할 수 있다.
근데 이 경우, 우리가 직접 명시해준 것은 제어가 가능하겠는데, 조금 번거로운게 사실이다.
그래서 비트연산을 통해 이를 수월하게 작업할 수 있다.
# 1을 왼쪽으로 0번, 1번, 2번 옮겨라 하는 의미이다.
위에 모든 2진수 비트들을 명시해 준것과 같은 표현인데, 더 간결하고 제어하기 수월하다.
# 쉬프트 연산을 수행할 숫자는 비트의 번호와도 대응이 된다.
즉, 2번비트를 1로 만들고 싶으면 2만큼 쉬프트 연산을 수행해주면 되는것이다.
그러므로 코드를 짤 때, 1<<3 이라는것은 3번비트가 1인 값이라고도 해석 할 수 있어야 한다.
'EMBEDDED > 8-bit AVR' 카테고리의 다른 글
7) AND연산을 이용하여 특정비트를 0으로 만들기 (0) | 2018.04.23 |
---|---|
6) OR연산을 이용하여 특정비트 1로 만들기 (0) | 2018.04.21 |
4) LED 제어 (0) | 2018.04.18 |
3) LED켜기 & 시뮬레이터 디버깅 (0) | 2018.04.18 |
2) Atmel Studio 7.0 설치&프로젝트 생성 (0) | 2018.04.12 |