본문 바로가기

AVR 기초/LED 제어하기

[AVR 기초] LED로 X-MAS 트리 만들기2

*키트는 Atmega128A를 사용하였습니다*

 

X-MAS 트리 만들기 2번째 입니다.

전의 코드와 다른점은 점멸할 때 PORTA에 들어있는 값에 따라 delay를 다르게 해줍니다.

 

#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
#include <stdlib.h>
#include <time.h>


void del(int sec){
	volatile int j,k,l;
	for(j = 0; j< sec ; j++){
		for(k = 0; k< 1000 ; k++){
			for (l = 0; l<500;l++){
			}
		}
	}
}
int main(void)
{
	/* Replace with your application code */
	DDRA = 0xff;
	srand(time(NULL));
	while (1)
	{
		PORTA = rand();						//PORTA에 랜덤한 값 넣기(0~255)
		//_delay_ms(1000);
		//del(rand()%3+1);
		if(PORTA < 86){						//조건문 if PORTA가 86 보다 작다면
			_delay_ms(500);					//딜레이 0.5초
		}
		else if(PORTA < 170){				//PORTA가 85보다 크고 170보다 작다면
			_delay_ms(1000);				//딜레이 1초
		}
		else
		_delay_ms(1500);					//둘다 아니라면 1.5초 딜레이
		
	}
	return 0;
}