Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                        
                    Creative Code
02_SWITCH_LED_INTERRUPT.c 본문
#include <wiringPi.h>
#include <stdio.h>
// LED 핀 및 스위치 핀 정의
#define LED_1 23
#define SW_1 4
// LED와 스위치 상태를 나타내는 변수
int LED1_flag = 0;
int SW1_flag = 0;
// 스위치 인터럽트 핸들러 함수
void sw_interrupt()
{
    // LED1 상태 토글
    if (LED1_flag == 0)
    {
        digitalWrite(LED_1, HIGH); // LED1 켜기
        LED1_flag = 1;
    }
    else
    {
        digitalWrite(LED_1, LOW); // LED1 끄기
        LED1_flag = 0;
    }
    SW1_flag = 1; // 스위치 상태 업데이트
}
int main(void)
{
    // WiringPi 라이브러리 초기화
    if (wiringPiSetupGpio() == -1) return -1; // BCM 모드 사용
    // 핀 모드 설정
    pinMode(LED_1, OUTPUT); // LED_1을 출력 모드로 설정
    pinMode(SW_1, INPUT);   // SW_1을 입력 모드로 설정
    digitalWrite(LED_1, LOW); // 초기 LED1 상태: 끄기
    // 스위치 인터럽트 설정
    wiringPiISR(SW_1, INT_EDGE_RISING, &sw_interrupt);
    while(1)
    {
        // 스위치 상태 확인 및 출력
        if (SW1_flag == 1)
        {
            printf("SW1 pushed..!!!\n");
            SW1_flag = 0; // 스위치 상태 초기화
        }
    }
    return 0;
}'Raspberry PI(C)' 카테고리의 다른 글
| 06_THREAD3.c (0) | 2023.10.06 | 
|---|---|
| 05_THREAD2.c (0) | 2023.10.06 | 
| 04_THREAD1.c (1) | 2023.10.06 | 
| 03_THREAD.c (0) | 2023.10.06 | 
| 01_LED_ON_OFF.c (0) | 2023.10.06 |