채터링 #1/2

채터링: 전자 회로 내의 스위치나 계전기의 접점이 붙거나 떨어질 때 기계적인 진동에 의해 실제로는 매우 짧은 시간 안에 접점이 붙었다가 떨어지는 것을 반복하는 현상. 바운스 현상이라고도 함.

스위치를 누르는 동안 LED를 키고, 떼면 LED를 끄는 단순한 동작은 문제가 없겠지만, 누르고 떼는 동작의 횟수를 세는 경우라면 한번 누르는 동작에 여러번의 입력이 생기는 문제가 있다.

아래 예제는 채터링을 제거하여 누르는 동작에만 동작하고 한번 누를 때마다 LED가 켜지고 꺼지게 된다. 17행을 제거하여 채터링을 제거하지 않았다면 한번 누르는 동작이 여러번의 입력으로 처리되어 정확한 동작을 하지 못한다. 11, 14번행의 static과 15번 행의 이전 상태 값을 저장하는 부분에 주의.