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
}
}
}
'AVR' 카테고리의 다른 글
인터럽트를 사용해서 PORTA에 LED 깜빡거리게 켜기 (0) | 2023.03.17 |
---|---|
4자리수 FND 초시계와 분시계 만들기 (0) | 2023.03.16 |
4자리 7세그먼트 표시장치 - 기본 동작 확인 (0) | 2023.03.16 |
토글스위치 3개를 이용해 순차적 점등 및 일괄점등 (0) | 2023.03.15 |
토글스위치3개를 이용해 LED ON / OFF 조절 (0) | 2023.03.15 |