비트연산자

Arduino 실전 예제

Arduino 실전 예제

예제 1: LED 8개 제어

// PORTB의 각 비트가 LED 하나씩 제어
unsigned char leds = 0;

// 3번 LED 켜기
leds |= (1 << 3);

// 5번 LED 끄기
leds &= ~(1 << 5);

// 모든 LED 켜기
leds = 0xFF;  // 11111111

// 모든 LED 끄기
leds = 0x00;  // 00000000

예제 2: 버튼 상태 확인

// PINB의 2번 비트로 버튼 상태 확인
if (PINB & (1 << 2)) {
    // 버튼이 눌림 (HIGH)
} else {
    // 버튼이 안 눌림 (LOW)
}

예제 3: 여러 설정을 1바이트에 저장

// 설정값 정의
#define SETTING_SOUND   (1 << 0)  // 0번 비트: 소리
#define SETTING_VIBRATE (1 << 1)  // 1번 비트: 진동
#define SETTING_LED     (1 << 2)  // 2번 비트: LED
#define SETTING_AUTO    (1 << 3)  // 3번 비트: 자동모드

unsigned char settings = 0;

// 소리와 LED 켜기
settings |= SETTING_SOUND;
settings |= SETTING_LED;
// 또는: settings |= (SETTING_SOUND | SETTING_LED);

// LED 설정 확인
if (settings & SETTING_LED) {
    // LED 설정이 켜져 있음
}

// 진동 끄기
settings &= ~SETTING_VIBRATE;

댓글

댓글 본문
버전 관리
anton
현재 버전
선택 버전
graphittie 자세히 보기