학습/Arduino

아날로그/디지털 입출력 #3

juhyeon 2021. 9. 24. 02:53

#버튼을 이용하여 delay()와 millis()의 차이 확인

 

void delay(unsigned long ms)

  • ms단위의 지연
  • 딜레이함수가 실행중인  동안에는 대부분의 마이크로컨트롤러의 동작이 중단됨
  • 동작이 중단되므로 다른 동작을 할 수 없음
  • chattering방지: 버튼과 같은 물리적인 요소를 사용해 신호를 입력으로 받았을 때 신호에 바운싱이 발생하는데 delay()함수는 chattering을 방지를 소프트웨어적으로 해결하는 해결책이 될 수 있음

unsigned long millis(void)

  • 프로그램 시작 이후의 경과 시간을 반환
  • 딜레이 함수와 달리 다른 작업이 가능
  • 일정 시간 간격을 설정하기 위해서는 경과시간을 계속 검사 해야함
  • 코드가 복잡해지는 단점