가운데 LED인 LD4, LD5 부터 시작해서 양쪽으로 퍼져 나 간뒤 다시 모이는 형태로 LED를 제어해 볼 것이다.
// 문제 6. 코드입니다.
#include <avr/io.h>
#define F_CPU 16000000UL
#include <util/delay.h>
int main()
{
unsigned char led, led2;
int state;
DDRA = 0xff;
led = 0x10;
led2 = 0x08;
while(1) {
if(led == 0x10 || led2 == 0x08)
state = 0;
else if (led == 0x80 || led2 == 0x10)
state = 1;
PORTA = led+led2;
_delay_ms(200);
if(state ==0) {
led = led <<1;
led2 = led2 >>1;
}
else if(state ==1) {
led = led >>1;
led2 = led2 <<1;
}
}
return 0;
}