실습 과제명 : 아두이노 칩셋을 이용한 스위치로 LED 끄고 켜기
수행기간 : 2022. 05. 25
참가인원 : 1명
담당업무 : 조합 논리회로, 레지스터 이용
수행목표 :
PinState 로 변수 INPUT A1-4 , B1-4 를 PG0-7번 포트에 연결 및 선언한다.
A로 해서 1번부터 4번 B로해서 1번부터 4번까지로 지정해준것은 여러번 값을 참조할 때 비교 대입하기 보기 쉽게 하기위해서 해당 변수이름을 선택했다.
ZIO 커넥터로 그라운드 3.3VCC를 브래드 보드에 연결하고
MORPHO 커넥터로 PG4,5,6,7번을 연결한다.
아두이노 칩셋에 PG0-3 번까지는 내장되 있다.
IDE에서 PG0-7 번을 INPUT 신호로 두고 (스위치)
PD0-7번을 OUTPUT 신호로 준다. (LED)
INPUT A1과 INPUT B1을 동시에 누르면 PD1에 두개의 1,1 신호가 들어오고 이 때에 && AND게이트 연산으로
1이되서 GPIOD -> ODR 연산으로 0X2번 을 제외한 나머지 LED에 0 신호로 설정한다.
OR 게이트로 둘중에 하나가 1되면 1번째 외에는 불을 꺼준다
이 작업을 A1-4 번까지 B1-4번까지 비트연산으로 1248 1248 해서 0001 0000 || 0001 0000 되면 0010 0000 되게 해준다 . 0X(해당 자리수) 를 입력하면 된다 .
그리고 버튼을 2개 초과해서 누를때도 GPIOD -> ODR 로 불을켜줄수 있게 한다.
불을 켜고 끄고 A와 B가 둘다 1이 나왔을때 하나 올려주는 개념은 CARRY와 같이 할수는 있었으나
실제 함수에서 CARRY가 들어가지 않은점 또 버튼을 3개 초과해서 누를때 일일이 CARRY되서 하나더 불 켜고
끌때 반영이 되지 않는 문제가 있지만 1,1 이 나왔을때 그옆자리로 LED JUMP 할수 있게 된 점은 알게
되서 좋았다.