BASIC4MCU | 질문게시판 | 답변 : 아두이노 질문입니다
페이지 정보
작성자 master 작성일2019-11-07 10:06 조회3,725회 댓글0건
https://www.basic4mcu.com/bbs/board.php?bo_table=gac&wr_id=10562
본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2019-11-07 오전 9:49:30// by Ok-Hyun Park//int A0Pin=12,A1Pin=11;int B0Pin=10,B1Pin=9;int LED0=6,LED1=5,LED2=4;//void setup(){pinMode(A0Pin,INPUT); pinMode(A1Pin,INPUT);pinMode(B0Pin,INPUT); pinMode(B1Pin,INPUT);pinMode(LED0,OUTPUT); pinMode(LED1,OUTPUT); pinMode(LED2,OUTPUT);}//void loop(){int btn1=digitalRead(A0Pin); int btn2=digitalRead(A1Pin);int btn3=digitalRead(B0Pin); int btn4=digitalRead(B1Pin);//digitalWrite(LED0,0); digitalWrite(LED1,0); digitalWrite(LED2,0);//if( btn1 ){ digitalWrite(LED0,1); digitalWrite(LED1,0); digitalWrite(LED2,0); } // 1if( btn2 ){ digitalWrite(LED0,1); digitalWrite(LED1,0); digitalWrite(LED2,0); } // 1if( btn3 ){ digitalWrite(LED0,1); digitalWrite(LED1,0); digitalWrite(LED2,0); } // 1if( btn4){ digitalWrite(LED0,1); digitalWrite(LED1,0); digitalWrite(LED2,0); } // 1if( btn1&& btn3 ){ digitalWrite(LED0,0); digitalWrite(LED1,1); digitalWrite(LED2,0); } // 2if( btn2&&!btn3&&!btn4){ digitalWrite(LED0,0); digitalWrite(LED1,1); digitalWrite(LED2,0); } // 2if(!btn1&&!btn2&& btn4){ digitalWrite(LED0,0); digitalWrite(LED1,1); digitalWrite(LED2,0); } // 2if( btn3&& btn4){ digitalWrite(LED0,0); digitalWrite(LED1,1); digitalWrite(LED2,0); } // 2if( btn1&& btn2 ){ digitalWrite(LED0,1); digitalWrite(LED1,1); digitalWrite(LED2,0); } // 3if( btn2&& btn4){ digitalWrite(LED0,0); digitalWrite(LED1,0); digitalWrite(LED2,1); } // 4if( btn1&& btn2&& btn4){ digitalWrite(LED0,0); digitalWrite(LED1,0); digitalWrite(LED2,1); } // 4if( btn2&& btn4){ digitalWrite(LED0,0); digitalWrite(LED1,0); digitalWrite(LED2,1); } // 4if( btn1&& btn2&& btn3 ){ digitalWrite(LED0,1); digitalWrite(LED1,0); digitalWrite(LED2,1); } // 5if( btn1&& btn3&& btn4){ digitalWrite(LED0,1); digitalWrite(LED1,0); digitalWrite(LED2,1); } // 5if( btn1&& btn2&& btn3&& btn4){ digitalWrite(LED0,0); digitalWrite(LED1,1); digitalWrite(LED2,1); } // 6delay(10);}
조건식에 오타도 있고 엉망이군요
조건식을 만들 때는 모든 스위치의 조건을 다 적어야합니다.
스위치 16가지 조건을 모두 체크해야 합니다.
조건식에 대한 결과가 맞지 않습니다.
반가산기 후 전가산기로 동작하려면
void loop() {// input a as two separate bitsbool a0 = digitalRead(A0Pin);bool a1 = digitalRead(A1Pin);// input b as two separate bitsbool b0 = digitalRead(B0Pin);bool b1 = digitalRead(B1Pin);// half adder for digit 0 of output sum and carrybool s0 = a0 ^ b0;bool c0 = a0 & b0;// full adder for digit 1 of output sum and carrybool s1 = (a1 ^ b1) ^ c0;bool c1 = (a1 & b1) | (c0 & (a1 ^ b1));digitalWrite(LED0Pin, s0);digitalWrite(LED1Pin, s1);digitalWrite(LED2Pin, c1); // digit2 of output will be carry from digit 1}링크글 제일 아래의 코드가 편하지 않나요?
void loop() {// input a as two separate bitsbool a0 = digitalRead(A0Pin);bool a1 = digitalRead(A1Pin);// input b as two separate bitsbool b0 = digitalRead(B0Pin);bool b1 = digitalRead(B1Pin);// half adder for digit 0 of output sum and carrybool s0 = a0 ^ b0;bool c0 = a0 & b0;// full adder for digit 1 of output sum and carrybool s1 = (a1 ^ b1) ^ c0;bool c1 = (a1 & b1) | (c0 & (a1 ^ b1));digitalWrite(LED0Pin, s0);digitalWrite(LED1Pin, s1);digitalWrite(LED2Pin, c1); // digit2 of output will be carry from digit 1//int val=c1*4 + s1*2 + s0; // 7세그먼트용 값 계산// val를 7세그먼트 출력하세요}
int val=c1*4 + s1*2 + s0; // 7세그먼트용 값 계산// val를 7세그먼트 출력하세요
댓글 0
조회수 3,725등록된 댓글이 없습니다.