728x90
| (OR) 연산자를 사용하여 구현을 해봤다.
OR 연산자는 하나라도 1의 입력이 있으면, 출력은 1로 되는 논리연산자이다.
0번부터 3번 LED를 순차적으로 점등하고, 7번부터 4번 LED를 순차적으로 점등한다.
그 후로는 반대로 작동하여 다시 중앙으로 모이는 동작을 진행한다.
#define F_CPU 16000000UL
#include <avr/io.h>
#include <util/delay.h>
#define LED_DDR DDRC
#define LED_PORT PORTC
int main(void)
{
LED_DDR = 0xff;
while(1)
{
for (uint8_t i = 0; i < 4; i++) // 8bit unsigned 선언
{
LED_PORT = (0x08 >> i) | (0x10 << i); // 0000 1000 상태에서 1을 오른쪽으로 3번 민다
// 0001 0000 상태에서 1을 왼쪽으로 3번 민다
_delay_ms(200);
}
for (uint8_t i = 0; i < 4; i++)
{
LED_PORT = (0x80 >> i) | (0x01 << i); // 1000 0000 상태에서 1을 오른쪽으로 3번 민다
// 0000 0001 상태에서 1을 왼쪽으로 3번 민다
_delay_ms(200);
}
}
}
728x90
'Language > AVR' 카테고리의 다른 글
ATmega 128 : LED Bar 구조체 동작 구현 (0) | 2024.05.28 |
---|---|
ATmega 128 : LED Bar 포인터 동작 구현 (1) | 2024.05.26 |
ATmega 128 : LED Bar 배열 동작 구현 (0) | 2024.05.25 |
ATmega 128 : LED Bar 순차적 점등하기 (0) | 2024.05.25 |
ATmega 128 : LED Bar 점등하기 (0) | 2024.05.25 |