rtc.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. '''
  2. RTC test for the CC3200 based boards.
  3. '''
  4. from machine import RTC
  5. import os
  6. import time
  7. mch = os.uname().machine
  8. if not 'LaunchPad' in mch and not 'WiPy' in mch:
  9. raise Exception('Board not supported!')
  10. rtc = RTC()
  11. print(rtc)
  12. print(rtc.now()[:6])
  13. rtc = RTC(datetime=(2015, 8, 29, 9, 0, 0, 0, None))
  14. print(rtc.now()[:6])
  15. rtc.deinit()
  16. print(rtc.now()[:6])
  17. rtc.init((2015, 8, 29, 9, 0, 0, 0, None))
  18. print(rtc.now()[:6])
  19. seconds = rtc.now()[5]
  20. time.sleep_ms(1000)
  21. print(rtc.now()[5] - seconds == 1)
  22. seconds = rtc.now()[5]
  23. time.sleep_ms(2000)
  24. print(rtc.now()[5] - seconds == 2)
  25. # initialization with shorter tuples
  26. rtc.init((2015, 9, 19, 8, 0, 0, 0))
  27. print(rtc.now()[5])
  28. rtc.init((2015, 9, 19, 8, 0, 0))
  29. print(rtc.now()[5])
  30. rtc.init((2015, 9, 19, 8, 0))
  31. print(rtc.now()[5])
  32. rtc.init((2015, 9, 19, 8))
  33. print(rtc.now()[4])
  34. rtc.init((2015, 9, 19))
  35. print(rtc.now()[3])
  36. def set_and_print(datetime):
  37. rtc.init(datetime)
  38. print(rtc.now()[:6])
  39. # make sure that setting works correctly
  40. set_and_print((2000, 1, 1, 0, 0, 0, 0, None))
  41. set_and_print((2000, 1, 31, 0, 0, 0, 0, None))
  42. set_and_print((2000, 12, 31, 0, 0, 0, 0, None))
  43. set_and_print((2016, 12, 31, 0, 0, 0, 0, None))
  44. set_and_print((2016, 12, 31, 0, 0, 0, 0, None))
  45. set_and_print((2016, 12, 31, 1, 0, 0, 0, None))
  46. set_and_print((2016, 12, 31, 12, 0, 0, 0, None))
  47. set_and_print((2016, 12, 31, 13, 0, 0, 0, None))
  48. set_and_print((2016, 12, 31, 23, 0, 0, 0, None))
  49. set_and_print((2016, 12, 31, 23, 1, 0, 0, None))
  50. set_and_print((2016, 12, 31, 23, 59, 0, 50, None))
  51. set_and_print((2016, 12, 31, 23, 59, 1, 900, None))
  52. set_and_print((2016, 12, 31, 23, 59, 59, 100, None))
  53. set_and_print((2048, 12, 31, 23, 59, 59, 99999, None))
  54. rtc.init((2015, 8, 29, 9, 0, 0, 0, None))
  55. rtc.alarm(0, 5000)
  56. rtc.alarm(time=2000)
  57. time.sleep_ms(1000)
  58. left = rtc.alarm_left()
  59. print(abs(left-1000) <= 10)
  60. time.sleep_ms(1000)
  61. print(rtc.alarm_left() == 0)
  62. time.sleep_ms(100)
  63. print(rtc.alarm_left(0) == 0)
  64. rtc.alarm(time=1000, repeat=True)
  65. time.sleep_ms(1500)
  66. left = rtc.alarm_left()
  67. print(abs(left-500) <= 15)
  68. rtc.init((2015, 8, 29, 9, 0, 0, 0, None))
  69. rtc.alarm(time=(2015, 8, 29, 9, 0, 45))
  70. time.sleep_ms(1000)
  71. left = rtc.alarm_left()
  72. print(abs(left-44000) <= 90)
  73. rtc.alarm_cancel()
  74. rtc.deinit()
  75. # next ones must raise
  76. try:
  77. rtc.alarm(5000)
  78. except:
  79. print('Exception')
  80. try:
  81. rtc.alarm_left(1)
  82. except:
  83. print('Exception')
  84. try:
  85. rtc.alarm_cancel(1)
  86. except:
  87. print('Exception')
  88. try:
  89. rtc.alarm(5000)
  90. except:
  91. print('Exception')
  92. try:
  93. rtc = RTC(200000000)
  94. except:
  95. print('Exception')
  96. try:
  97. rtc = RTC((2015, 8, 29, 9, 0, 0, 0, None))
  98. except:
  99. print('Exception')