1 // LED 를 제어하는 프로그램을 작성하시오. int 형 변수 led 의 값을 2진수 형태로 LED 에 표시할 것 . 버튼을 누를 때마다 의 값을 왼쪽으로 비트씩 시프트시킬 것
led 1 .
2
3 // LED 초기상태 0 0 0 1 4 // 버튼 한번 누름 0 0 1 0 5 // 다시 한번 누름 0 1 0 0 6 // 다시 한번 누름 1 0 0 0 7 // 푸쉬 버튼 누름 0 0 0 1 8 // 같은 형태로 반복
9
10 #include <wiringPi.h>
11
12 int main() 13 {
14 const int button_pin=21;
15 const int led_pin[]={25,29,28,27};
16 const int led_count=sizeof(led_pin)/sizeof(led_pin[0]);
17
18 wiringPiSetup();
19
20 pinMode(button_pin, INPUT);
21 for(int i=0;i<led_count;++i){
22 pinMode(led_pin[i], OUTPUT);
23 digitalWrite(led_pin[i], LOW);
24 } 25
26 int input_prev=HIGH, input_cur=HIGH;
27 int led=1;
28
29 while(1){
30 input_cur=digitalRead(button_pin);
31
32 if(input_prev==HIGH && input_cur==LOW){
33 led<<=1;
34 if(led==0x10) led=1;
35 }
36
37 input_prev=input_cur;
38
39 for(int i=0;i<led_count;++i)
40 digitalWrite(led_pin[i], (led&(1<<i)?HIGH:LOW));
41
42 delay(20);
43 } 44
45 return 0;
46 } 47