마이크로 파이썬 배우기 9 – 주요 시간 관련 함수

마이크로 파이썬 배우기 9 – 주요 시간 관련 함수

라즈베리 파이 피코 보드에서는 시간과 관련된 다양한 함수들을 사용할 수 있는데, 그중 내가 우선적으로 중요하다고 생각하는 함수들은 다음과 같다. 이들 시간 관련 함수들을 사용하려면 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)

​

​