''' RTC test for the CC3200 based boards. ''' from pyb import RTC import os import time machine = os.uname().machine if not 'LaunchPad' in machine and not 'WiPy' in machine: raise Exception('Board not supported!') rtc = RTC() print(rtc) print(rtc.now()[:6]) rtc = RTC(datetime=(2015, 8, 29, 9, 0, 0, 0, None)) print(rtc.now()[:6]) rtc.deinit() print(rtc.now()[:6]) rtc.init((2015, 8, 29, 9, 0, 0, 0, None)) print(rtc.now()[:6]) seconds = rtc.now()[5] time.sleep_ms(1000) print(rtc.now()[5] - seconds == 1) seconds = rtc.now()[5] time.sleep_ms(2000) print(rtc.now()[5] - seconds == 2) # initialization with shorter tuples rtc.init((2015, 9, 19, 8, 0, 0, 0)) print(rtc.now()[5]) rtc.init((2015, 9, 19, 8, 0, 0)) print(rtc.now()[5]) rtc.init((2015, 9, 19, 8, 0)) print(rtc.now()[5]) rtc.init((2015, 9, 19, 8)) print(rtc.now()[4]) rtc.init((2015, 9, 19)) print(rtc.now()[3]) def set_and_print(datetime): rtc.init(datetime) print(rtc.now()[:6]) # make sure that setting works correctly set_and_print((2000, 1, 1, 0, 0, 0, 0, None)) set_and_print((2000, 1, 31, 0, 0, 0, 0, None)) set_and_print((2000, 12, 31, 0, 0, 0, 0, None)) set_and_print((2016, 12, 31, 0, 0, 0, 0, None)) set_and_print((2016, 12, 31, 0, 0, 0, 0, None)) set_and_print((2016, 12, 31, 1, 0, 0, 0, None)) set_and_print((2016, 12, 31, 12, 0, 0, 0, None)) set_and_print((2016, 12, 31, 13, 0, 0, 0, None)) set_and_print((2016, 12, 31, 23, 0, 0, 0, None)) set_and_print((2016, 12, 31, 23, 1, 0, 0, None)) set_and_print((2016, 12, 31, 23, 59, 0, 50, None)) set_and_print((2016, 12, 31, 23, 59, 1, 900, None)) set_and_print((2016, 12, 31, 23, 59, 59, 100, None)) set_and_print((2048, 12, 31, 23, 59, 59, 99999, None)) rtc.init((2015, 8, 29, 9, 0, 0, 0, None)) rtc.alarm(0, 5000) rtc.alarm(time=2000) time.sleep_ms(1000) left = rtc.alarm_left() print(abs(left-1000) < 20) time.sleep_ms(1000) print(rtc.alarm_left() == 0) time.sleep_ms(100) print(rtc.alarm_left() == 0) rtc.init((2015, 8, 29, 9, 0, 0, 0, None)) rtc.alarm(time=(2015, 8, 29, 9, 0, 45)) time.sleep_ms(1000) left = rtc.alarm_left() print(abs(left-44000) < 100) # next ones must raise try: rtc.alarm(5000) except: print('Exception') try: rtc.alarm(5000) except: print('Exception') try: rtc = RTC(200000000) except: print('Exception') try: rtc = RTC((2015, 8, 29, 9, 0, 0, 0, None)) except: print('Exception')