embeded device에서 timer 구현하기
글쓴이: cleo8131 / 작성시간: 목, 2016/12/29 - 9:32오전
어떤 동작을 하는 중에 1분 정도 delay를 주고 그 후에 나머지 동작을 수행하도록 하려고 합니다.
이런 부분이 여러개 있는데 단순히 for문으로 1분 delay를 주면 cpu를 점유하게 되고,
for 문 동작 중에 interrupt같은 게 못 뜰수도 있을 것 같아서 고민이 됩니다.
timer로 1분 주고 1분 후에 interrupt가 뜨는 식으로 해야 될까요?
그럼 timer 를 주어야 되는 부분별로 함수를 나눠야 되는 것인지..
좋은 방법이 없는지 궁금합니다.
Forums:
http://hooneyo.tistory.com
http://hooneyo.tistory.com/entry/실행지연
http://poplinux.tistory.com/122
리눅스 커널안에서는 기본적으로 schedule_timeout() 를 사용하여 프로세스 스케줄링을 일정시간동안 당하지 않게 합니다.
그러나 컨텍스트 스위치하는 시간이 아까울 정도로 짧게 쉬는 경우는 busy loop을 이용합니다.
- 추가 -
* 아 저는 리눅스를 생각했는데 MCU인가요??
이런방법은 어떨까요
대충.. 이런식?
* 아 저는 MCU을 생각했는데 리눅스인가요??
>
>
> 단순히 for문으로 1분 delay를 주면 cpu를 점유하게 되고,
>
multi tasking 환경이 아니라면 CPU 점유를 따지는 의미가 없으므로 고민할 필요 없습니다.
multi tasking 환경이라면 이미 잘 구현된 타이머 설비가 반드시 있을것이므로 가져다 쓰세요.
>
> for 문 동작 중에 interrupt같은 게 못 뜰수도 있을 것 같아서 고민이 됩니다.
>
인터럽트를 금지시키고나서 그 다음에 for 문 동작시키는 것이라면 확실히 인터럽트는 뜨지 않으며,
인터럽트를 금지시키지 않고 그냥 for 문 동작시키는 것이라면 확실히 인터럽트는 뜹니다.
고민하지 않으셔도 됩니다.
답변 감사합니다.
답변 감사합니다.
리눅스가 아니라 MCU입니다.
멀티태스킹 환경이라서 구현된 타이머를 한번 찾아볼게요..
댓글 달기