utime - Time¶
The utime module loosely follows CPython’s time module, but is heavily
stripped down. Instead, it has a few time related functions which are not in
CPython but wouldn’t fit anywhere else in our implementation. Most
prominently, this is the utime.alarm() function for setting an RTC
alarm.
Like all other u-name modules, utime can also imported using the standard
import time statement.
-
utime.sleep(secs)¶ Sleep for
secsseconds. Can take a floating-point value.
-
utime.sleep_ms(msecs)¶ Sleep for
msecsmilliseconds. Only takes integer values.
-
utime.sleep_us(usecs)¶ Sleep for
usecsmicroseconds. Only takes integer values.
-
utime.time()¶ Return the current timestamp in seconds since 2000-01-01 00:00 in the local timezone.
-
utime.time_ms()¶ Return the current timestamp in milliseconds since 2000-01-01 00:00 in the local timezone.
-
utime.monotonic()¶ Return a monotonically increasing timestamp.
New in version 1.11.
-
utime.monotonic_ms()¶ Return a monotonically increasing timestamp in milliseconds.
New in version 1.11.
-
utime.ticks_ms()¶ Return processor ticks (converted to milliseconds) since Pycardium startup.
This function should be the preferred method for timing and profiling because it does not need an API call and thus is very fast.
New in version 1.13.
-
utime.ticks_us()¶ Return processor ticks (converted to microseconds) since Pycardium startup.
This function should be the preferred method for timing and profiling because it does not need an API call and thus is very fast.
New in version 1.13.
-
utime.unix_time()¶ Return the current unix time as seconds since the epoch.
New in version 1.12.
-
utime.unix_time_ms()¶ Return the current unix time as milliseconds since the epoch.
New in version 1.12.
-
utime.set_time(secs)¶ Sets the time to
secsseconds since 2000-01-01 00:00 in the local timezone.Changed in version 1.4:
utime.set_time()previously applied a wrong timezone offset, thus leading to wrong results.
-
utime.set_time_ms(msecs)¶ Set the time to
msecsseconds since 2000-01-01 00:00 in the local timezone.New in version 1.12.
-
utime.set_unix_time(secs)¶ Sets the time to
secsseconds since 1970-01-01 00:00 UTC. This corresponds to a regular Unix timestamp which can be obtained by runningdate +%sin a command line orint(time.time())in Python.
-
utime.set_unix_time_ms(msecs)¶ Set the time to
msecsmilliseconds since the unix epoch.New in version 1.12.
-
utime.localtime([secs])¶ Return the current time as a timestruct tuple. If
secsis given, return its timestruct tuple instead. Timestruct tuple looks like:(year, month, mday, hour, min, sec, wday, yday) # 0 1 2 3 4 5 6 7
-
utime.mktime(t)¶ Convert timestruct tuple into a seconds time stamp. See
utime.localtime()for details about timestruct tuples.- Returns
Seconds since 2000-01-01
-
utime.alarm(secs[, callback])¶ Register the next RTC alarm for the timestamp
secs.secsis seconds since 2000-01-01.If an optional
callbackis given, it will be registered for the RTC alarm interrupt. This will overwrite any previous interrupt handler. Ifcallbackis given,utime.alarm()will also enable the RTC alarm interrupt.Example:
import time def minute_timer(x): current = time.time() print("Current: " + str(current)) alarm = (current // 60 + 1) * 60 time.alarm(alarm, minute_timer) minute_timer(None)
Alternatively, you can register a callback using the interrupt module and then call
utime.alarm()without acallbackparameter:import interrupt, time def 5_second_timer(x): current = time.time() print("Current: " + str(current)) alarm = (current // 10) * 10 + 5 time.alarm(alarm) # This time, we need to register and enable the callback manually interrupt.set_callback(interrupt.RTC_ALARM, 5_second_timer) interrupt.enable_callback(interrupt.RTC_ALARM) 5_second_timer(None)