[에리카A+] 마이크로프로세서응용 Lab5 Interrupt Counter
- 최초 등록일
- 2020.04.02
- 최종 저작일
- 2018.01
- 8페이지/ MS 워드
- 가격 1,500원
목차
Chapter 1. 구현 방법
Chapter 2. 결과
Chapter 3. 결론 및 Discussion
본문내용
Chapter 1. 구현 방법
결과적으로 우리팀은 인터럽트를 이용해서 카운터 기능을 구현하는 데 성공하였다.인터럽트를 구현하는 것은 그다지 어렵지 않았으나, 이번에도 역시나 토글스위치를 프로그램 중간에 끼워넣는 것에서 조금 어려움을 겪었다.
1. 레지스터 세팅과 인터럽트 세팅을 미리 해놓는다.
2. 인터럽트가 발생 시 countInt 변수의 값을 1로 초기화시켜준다.
(이는 인터럽트가 발생하였음을 표시해주는 변수이다.)
3. 그다음에 while 문으로 진입하고 ‘extractButton’ 함수와 ‘displayCount’함수를 무한으로 실행시킨다.
( countInt 의 값이 1일 경우 count의 값을 증가시켜주고, countInt 의 값을 다시 0으로 초기화 시켜준다. 버튼이 눌렸을 때 falling edge인 경우를 표시해 주는 countFlag 변수의 값을 1로 변경해주고 이 경우에는 displayCount에서 count 값을 0으로 초기화 시켜준다. 그리고 countFlag 는 다시 0 으로 바꿔준다.)
4. count의 값이 100에 도달하였을 경우 count의 값을 다시 0으로 초기화 시켜준다.
토글 스위치 기능을 하는 코드는 이전에 사용하였던 코드를 아주 조금만 수정 후사용하였다.
추가로 저번에 displaySeg 함수의 위치에 따라 쓰레기 값이 들어간다고 레포트에 적었는데 그 이유를 이번에 알게 되었다.
49번 라인과 50번 라인에 딜레이를 넣어주게되면 그러한 현상을 없앨 수 있었다.
포트B를 거의 동시에 지정하여 출력시킬 값을 넣어줘서 그런 현상이 발생한 것이었다.
위와 같은 코드들로 해당 프로그램을 성공적으로 구현하였다.
Chapter 2. 결과
위에 올린 알고리즘과 알고리즘 순서도에 따라 프로그램을 작동 시켰다. 결과는 성공적이었다.
참고 자료
없음