본 글은 GPIO를 실습해 보기 위해, 스위치를 눌러서 LED를 켜본다.
본 문제를 해결하기 위해 접근하는 과정은 다음과 같다.
1. 외부 전압(Vcc)가 스위치를 통해서 PC0 핀에 입력된다.
2. PC0 핀에 전압이 입력되면, PA7 핀에 전압을 출력한다.
3. PA7과 LED를 연결한다.
한가지 주의할 점은, 스위치에는 저항을 연결하고 접지에 연결해 주어야 한다는 점이고,
LED에는 저항을 연결해 주어야 한다는 점이다. 이거는 전압이 특정 소자에 과하게 들어가는 현상인 floating 현상을 방지하기 위해서 라고 한다.
// 1. LED 스위치 통제
#define F_CPU 12000000UL // 클럭 속도 결정
#include <avr/io.h>
#include <util/delay.h> // 딜레이 라이브러리
int main(void)
{
DDRA = 0xff;
DDRC = 0x00;
PORTA = 0x00;
while(1)
{
if(PINC & 0x01)
{
PORTA = PORTA | (1<<7);
}
else
{
PORTA = 0x00;
}
}
}
'Develop Knowledge > Atmega, AVR' 카테고리의 다른 글
8강. 내부 인터럽트 - 8bit 타이머 인터럽트 (0) | 2022.12.18 |
---|---|
7강. 내부 인터럽트와 외부 인터럽트 (0) | 2022.12.18 |
5강. 핀 선택하기 (0) | 2022.12.17 |
4강. GPIO 개요 (0) | 2022.12.17 |
3강. 개발 환경 준비 (0) | 2022.12.17 |