AVR 기초/LED 제어하기
[AVR 기초] LED로 1~255 표현하기
karrss
2020. 7. 12. 18:23
*키트는 Atmega128A를 사용하였습니다*
LED로 1부터 255 표현하기 입니다.
ATmega128A에서는 LED가 총 8개입니다.
맨 오른쪽의 LED부터 2의 0승 -> 맨 왼쪽의 LED는 2의 7승
코드는 다음과 같습니다.
#include <avr/io.h>
#define F_CPU 16000000UL //클럭 설정 16MHz
#include <util/delay.h> //딜레이 헤더파일 선언
int main(void) //main 함수
{
/* Replace with your application code */
DDRA = 0xff; //LED 8개 사용
int j = 1; //변수 j = 1
while (1) //무한루프
{
PORTA = 0x00; //LED 다 끄기
for (int i=0; i< 256 ; i++) //i=0 부터 255까지 반복(i는 1씩 증가)
{
PORTA += j; //PORTA 값에 현재의 값 + j >> PORTA = PORTA + j
_delay_ms(500); //0.5초 딜레이
}
}
return 0;
}