[에리카A+] 마이크로프로세서응용 Lab2 ledkey
- 최초 등록일
- 2020.04.02
- 최종 저작일
- 2018.01
- 7페이지/ MS 워드
- 가격 1,500원
목차
1. 구현 방법
2. 결과
3. 결론 및 Discussion
본문내용
Chapter 1. 구현 방법
우선 우리 팀은 두 가지 방법으로 해당 프로그램을 구현하였다. 두 가지 모두 성공적으로 작동하였으나, 첫 번째 방법은 교수님께서 의도하신 방법이 아니었다 하여 새롭게 두 번째 방법을 찾아서 해당 프로그램을 구현하였다. 처음에 사용한 방법은 아래와 같다.
< 첫 번째 방법 >
state 변수를 선언하여 버튼을 안 눌렀을 경우에는 아무 동작 안 하도록 하였고
버튼을 눌렀을 경우 state 값의 상태에 따라 다른 동작을 하도록 설계하였다.
state 변수의 의미는 ‘LED 가 켜져 있다’라는 의미이다.
‘LED가 꺼져 있을 경우’에는 LED를 켜고 state 를 1으로 변화시킨다.
‘LED가 켜져 있을 경우’에는 LED를 끄고 state 를 0으로 변화시킨다.
그 후, 버튼을 땔 때까지 대기시킨다.
위와 같은 방법으로 첫 번째 방법을 성공시켰다. 하지만 조교님께서 이 경우도 제대로 작동을 하기는 하지만 두 번째 while 문으로 아무것도 없이 반복을 시킬 경우, 버튼을 누르고 있는 동안 다른 작업을 시킬 수 없다는 지적을 하였다. 그리고 교수님이 요구하신 방법이 아니라고 하셨기에, 실험에 통과는 하였으나 시간도 좀 있고 해서 더 남아 두 번째 while 문을 사용하지 않는 다른 방법을 생각하게 되었다.
< 두 번째 방법 >
두 번째 방법에서는 모두 세 가지 변수를 사용하였다.
현재의 버튼 상태를 나타내는 ‘buttonState’ 변수
이전의 버튼 상태를 나타내는 ‘buttonStateOre’ 변수
현재 버튼 상태와 이전의 버튼 상태가 서로 다를 경우에만 두 번째 if 문에 걸린다.
딸깍, 버튼이 닫혔다가 열렸다가… 항상 0과 1이 동시에 존재하므로 두 번 중 한 번은 불이 켜지고 다른 한 번은 가만히 동작하도록 buttonFlag 를 변화시킨다.
참고 자료
없음