소프트웨어 타이머 인터럽트 코딩...

by 이희철 | 2016-07-26 23:02
아두이노

수비드머신에서 LED를 점멸한다던지 정해진 시간마다 반복적인 동작을 시킬때는...


크게 하드웨어 인터럽트에 의해 정해진 주기마다 하드웨어 인터럽트가 걸려 특정 루틴이 실행되게 하는 방법과 소프트웨어 인터럽트에 의한 방법 2가지가 있다...


인터럽트가 걸리는 상황이나 조건이 복잡할 때는 하드웨어에 의한 방법이 유리할 수 있으나...


여기서는 간단하게 시간설정과 LED점멸과 TFT LCD세팅시 세팅치 점멸등의 간단한 타이머인터럽트만 있으면 되므로 1초마다 한번 씩 호출되는 인터럽트 서비스루틴을 작성했다...


여기서 주의해야 할 점은...


아두이노 우노에서 정상적으로 작동했던 타이머 라이브러이인 MsTimer2.h가 메가에서는 동작하지 않아 무척 시간을 많이 소비하였다...


하드웨어의 핀배치등 메가와 우노가 많이 다르다는 것은 이전의 실험에서 알게 되었으나...


이번 테스트 프로그램에서 라이브러리도 보드에 따라 호환이 안된다는 사실을 알 수 있었다...


따라서 메가보드를 사용할 경우 첨부화일로 올린 메가보드에서도 동작하는 헤더화일을 사용하기 바란다... 


테스트 프로그램은...


매 1초마다 LED를 점멸하면서...


시리얼포트로 현재 초를...


출력하고 1분마다는 분을...


시간이 넘어가면 시를 표시해주는 테스트 프로그램...


타이머로 사용할 경우에는 세팅치를 입력받아서 카운트다운해 나가면 될 것이다...



댓글 0

MADE BY

이희철

요리, 전자회로설계