라즈베리 파이 피코 보드에서는 시간과 관련된 다양한 함수들을 사용할 수 있는데, 그중 내가 우선적으로 중요하다고 생각하는 함수들은 다음과 같다. 이들 시간 관련 함수들을 사용하려면 time 또는 utime 라이브러리를 사용 선언해 주어야 사용이 가능하다.
1. 현재 시간 반환 함수 utime.localtime( )
사람들이 가장 보편적으로 사용하는 현지 시간을 알려주는 함수로는 다음과 같이 utime.localtime( )을 사용하면 된다.
이 명령에 의해 반환되는 값은 (year, month, mday, hour, minute, second, weekday, yearday)로 구성된 배열 값으로, 배열 변수를 이용하여 반환값을 저장한 후, 변수명[순번]의 방식으로 참조하여 사용하게 된다.
참고로 요일 번호를 셀 때는 월요일이 0에 해당된다.
2. 시스템 시간 반환 함수 utime.time( )와 utime.time_ns( )
인간이 일반적으로 사용하는 연도-날자-시간을 컴퓨터에서는 모두 하나의 값으로 바꾸어 처리하며, 이를 timestamp라고 한다. 컴퓨터 내에서 시간 계산을 할 때는 사람들이 사용하는 시간 표시 방식보다는 이러한 컴퓨터가 사용하는 timestamp가 더욱 용이할 수 있다.
이렇게 컴퓨터 시스템의 현재 시간에 대한 timestamp를 알고자 할 때 사용되는 함수가 utime.time( )이고, 반환되는 갚는 다음 예에서 보듯이 하나의 값이다.
만일 좀 더 정교한 시간을 원하는 경우에는 utime.time( ) 대신 utime.time_ns( )을 이용할 수 있는데, 후자의 경우 nanosec 단위의 시간을 반환한다.
3. 지연 함수 utime.sleep( )
이 함수는 프로그램 진행 중 일정한 시간 동안 동작을 멈추게 하는 지연효과를 이용하기 위해 사용하는 함수로,
초 단위의 지연효과를 나타낸다.
이 함수를 실행시키려면, 다음과 같이 time 또는 utime 라이브러리가 먼저 선언되어야 한다..
그리고 명령이 입력되면, 별다른 효과 없이 그냥 입력된 시간만큼 잠시 동작을 멈추게 된다.
이의 변형된 형태로는 사용하는 시간 단위를 msec (1/1000초)와 usec(백만 분의 1초) 단위인 utime.sleep_ms( ) 함수와, utime.sleep_us( ) 함수가 있으며, 사용법은 위에 소개한 time.sleep()와 지정하는 시간의 단위만 다를 뿐 동일하다.
1초를 utime.sleep_ms로 표시하면 다음과 같이 되며,
1초를 utime.sleep_us를 이용하여 지연시키려면 다음과 같이 된다.
4. 시간 측정을 위한 함수
두 시간의 간격을 계산하는 데 사용되는 함수 중 하나는 utime.ticks_ms( )와 utime.ticks_us( )이다.
utime.ticks_ms( ) 함수는 현재 시간을 mSec 단위로 측정해서 반환하며,
utime.ticks_us( )는 현재 시간을 micro Second 단위로 측정해서 반환한다.
두 시간의 간격을 측정하는 데 사용되는 함수는 utime.ticks_diff(시간 1, 시간 2)이다.
다음과 같이 두 개의 timestamp를 만들고 이들을 인수로 사용하여 시간 차이를 계산할 수 있다(msec)

