반응형
[LED 실습 2. LED의 ON/OFF 반복 ]
이 글에서는 AVR(Atmega128A)에서 LED제어하는 것을 실습한 내용을 다루려고 한다. 이 글은 지식을 나누고자 하는 목적이 아닌 개인 기록의 목적으로 작성했다는 점을 기억하기를 바란다.
# 실습 2. LED의 ON/OFF 반복
이 문제에서 알아야 할 것은 LED실습1 과 동일하지만 지연(delay) 시키는 것을 더 알아야 한다. 일반적으로 ms단위로 delay시키는 함수인 _delay_ms()함수를 사용하며, 이를 위해 F_CPU를 정의하여 외부 클럭을 정의해준다. 내가 사용하고 있는 ATmega128 보드의 경우 16MHz를 사용하고 있어 16000000UL로 정의해줬다.
회로의 경우, 실습1 과 동일하다.
코드의 로직은 단순하다. 먼저 DDRn과 PORTn 레지스터를 세팅해주고, PORTn레지스터의 값을 500ms마다 반복해서 변경해주면 된다.
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
int main()
{
DDRC = 0xFF;
PORTC = 0x00;
while(1)
{
PORTC = 0xFF;
_delay_ms(500);
PORTC = 0x00;
_delay_ms(500);
}
}
아래는 위 코드를 AVR에 업로드하여 실행한 영상이다.
반응형
'AVR' 카테고리의 다른 글
[AVR] LED 실습 5. LED 순차 점등 제어(if 문 이용) (0) | 2020.06.08 |
---|---|
[AVR] LED 실습 4. LED 일일히 설정하여 Shift On/Off (0) | 2020.06.04 |
[AVR] LED 실습 3. LED 잔상 실험 (1) | 2020.06.04 |
[AVR] LED 실습 1. LED 출력 포트 설정하고 다 켜놓기 (0) | 2020.06.03 |
[AVR] Atmel Studio 7.0 설치하고 샘플 프로젝트 실행하기(+ ISP를 통해서 USB전원 공급하는 방법) (0) | 2020.04.24 |
댓글