임베디드 시스템과 펌웨어
소프트웨어로 스위치의 채터링을 제거하는 방법으로 가장 적절한 것은 무엇입니까?
- A핀을 읽는 횟수를 늘리고 한 번이라도 1이 되면 눌렸다고 간주한다
- B수 ms마다 핀을 읽어 같은 값이 여러 번 이어졌을 때 비로소 상태가 바뀐 것으로 간주한다
- C스위치가 눌리면 마이크로컨트롤러를 재시작한다
정답과 해설 보기
정답: B. 수 ms마다 핀을 읽어 같은 값이 여러 번 이어졌을 때 비로소 상태가 바뀐 것으로 간주한다
채터링은 수 ms 안에 가라앉으므로, 예를 들어 5 ms마다 핀을 읽어 같은 값이 3회 이어지면 상태가 바뀐 것으로 판단하면 튀는 동안의 변화를 무시할 수 있습니다. 타이머 인터럽트로 주기적으로 읽도록 하면 다른 처리를 멈추지 않아도 됩니다. 대기 시간을 너무 길게 하면 반응이 느리게 느껴지므로 스위치의 특성에 맞춰 정합니다.