유틸리티 함수
딜레이
Wait
Wait time(mS)
밀리초 단위 시간지연 명령입니다. Delay라고 써도 됩니다.
Wait 200 Delay 200
Udelay
Udelay time(micro초)
마이크로초 단위의 짧은 지연입니다.
Udelay 100 ' 100 마이크로초 지연합니다.
시스템 시간
Millis
value = Millis()
시스템 부팅 이후 경과한 시간을 ms(밀리초) 단위로 반환합니다.
반환형은 64bit Long 이며, 장시간 동작하는 시스템에서도 오버플로우 걱정 없이 사용할 수 있습니다. (오버플로우 까지 5억년 걸립니다.)
Dim t As Long t = Millis() Do If Millis() - t >= 1000 Then Debug "1 Second", Cr t = Millis() End If Loop
시간 지연 사용 시 주의사항
Wait, Delay, Udelay 명령은 지정한 시간 동안 프로그램 실행을 멈추는(Block) 방식입니다.
즉, 대기하는 동안 아래 코드가 실행되지 않습니다.
예를 들어 Wait 1000 을 사용하면 1초 동안 프로그램이 멈추며, 그 시간 동안 입력 감지, 통신 처리, 상태 확인 등이 지연될 수 있습니다.
특히 자동화 제어나 실시간 응답이 필요한 프로그램에서는 과도한 Wait 사용은 권장되지 않습니다.
Do ReadSensor() Wait 1000 '이 시간 동안 프로그램이 멈춤 Process() Loop
위 예제에서는 센서를 읽은 뒤 1초 동안 프로그램이 정지하므로, 빠르게 변하는 입력을 놓칠 수 있습니다.
이런 경우에는 Millis() 를 사용한 비차단(Non-blocking) 방식을 권장합니다.
Dim t As Long t = Millis() Do ReadSensor() If Millis() - t >= 1000 Then Process() t = Millis() End If Loop
이 방식은 프로그램이 멈추지 않고 계속 실행되므로, 입력 처리와 통신을 유지하면서 시간 제어가 가능합니다.
