Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 모의 주식
- 개인프로젝트
- 자바정리
- Reflex
- 사물인터넷
- Python
- 개발
- 자바
- java정리
- 코딩독학
- 백준
- 코딩
- SNS
- 코테
- 이웃한 칸
- 코스닥
- 빅데이터
- 개발자
- C++
- 프로그래밍
- backend
- 프로그램
- java
- 주가예측
- Project
- 풀스택프레임워크
- 자바독학
- frontend
- 프로그래머스
- 코딩테스트
Archives
- Today
- Total
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 (0) | 2023.10.06 |
03_THREAD.c (0) | 2023.10.06 |
01_LED_ON_OFF.c (0) | 2023.10.06 |