본문 바로가기

AVR

AVR 배열 처리 LED left -> right 순차 ON 동작

unsigned char led[] = {}; 형태로 배열을 구성해서 for 문을 이용해 순차동작하게 제어한다.

shift 되었다가 돌아오는 형태로 구상하였습니다.

동영상은 한번만 가는걸로 촬영되었습니다.

#define F_CPU 16000000L
#include <avr/io.h>
#include <util/delay.h> // time delay
int led_init(void);
unsigned char led[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
int led_init(void)
{
		DDRA = 0b11111111;          
		PORTA = 0b00000000;         
}                          
int main(void)
{
	led_init();
	int i;
	while(1)
	{	
		PORTA = led; // PORTA = 0b11111111; all on
		for(i=0;i<8;i++)
		{
			PORTA=led[i];	
			_delay_ms(500);  // 1sec : 1000ms 0.5sec : 500ms 0.1sec : 100ms
		}
		for(i=7;i>0;i--)
		{
			PORTA=led[i];
			_delay_ms(500);  // 1sec : 1000ms 0.5sec : 500ms 0.1sec : 100ms
		}
		
	}

}