Minor changes to portable DS3231.

pull/7/head
Peter Hinch 2018-02-20 09:16:46 +00:00
rodzic 618a181fc4
commit 1e1b2a23ed
2 zmienionych plików z 22 dodań i 14 usunięć

Wyświetl plik

@ -1,9 +1,8 @@
# Portable driver for DS3231 precison real time clock. # ds3231_port.py Portable driver for DS3231 precison real time clock.
# Adapted from WiPy driver at https://github.com/scudderfish/uDS3231 # Adapted from WiPy driver at https://github.com/scudderfish/uDS3231
# Includes routine to calibrate the Pyboard's RTC from the DS3231
# delta method now operates to 1mS precision # Author: Peter Hinch
# precison of calibration further improved by timing Pyboard RTC transition # Copyright Peter Hinch 2018 Released under the MIT license.
# Adapted by Peter Hinch, Feb 2017
import utime import utime
import machine import machine

Wyświetl plik

@ -1,30 +1,39 @@
# ds3231_port_test # ds3231_port_test
# Test of portable driver for DS3231 precision RTC chip # Test/demo of portable driver for DS3231 precision RTC chip
# Author: Peter Hinch
# Copyright Peter Hinch 2018 Released under the MIT license
from machine import Pin, I2C from machine import Pin, I2C
import utime import utime
import sys
from ds3231_port import DS3231 from ds3231_port import DS3231
# Pyboard test
# A Pyboard test
#from pyb import RTC #from pyb import RTC
#rtc = RTC() #rtc = RTC()
#rtc.datetime((2018, 1, 1, 1, 12, 0, 0, 0)) # Force incorrect setting #rtc.datetime((2018, 1, 1, 1, 12, 0, 0, 0)) # Force incorrect setting
# In case pullups are absent. # mode and pull are specified in case pullups are absent.
#scl_pin = Pin('X2', pull=Pin.PULL_UP, mode=Pin.OPEN_DRAIN) # The pin ID's are arbitrary.
#sda_pin = Pin('X1', pull=Pin.PULL_UP, mode=Pin.OPEN_DRAIN) if sys.platform == 'pyboard':
scl_pin = Pin(19, pull=Pin.PULL_UP, mode=Pin.OPEN_DRAIN) scl_pin = Pin('X2', pull=Pin.PULL_UP, mode=Pin.OPEN_DRAIN)
sda_pin = Pin(18, pull=Pin.PULL_UP, mode=Pin.OPEN_DRAIN) sda_pin = Pin('X1', pull=Pin.PULL_UP, mode=Pin.OPEN_DRAIN)
else: # I tested on ESP32
scl_pin = Pin(19, pull=Pin.PULL_UP, mode=Pin.OPEN_DRAIN)
sda_pin = Pin(18, pull=Pin.PULL_UP, mode=Pin.OPEN_DRAIN)
i2c = I2C(-1, scl=scl_pin, sda=sda_pin) i2c = I2C(-1, scl=scl_pin, sda=sda_pin)
ds3231 = DS3231(i2c) ds3231 = DS3231(i2c)
print('Initial values') print('Initial values')
print('DS3231 time:', ds3231.get_time()) print('DS3231 time:', ds3231.get_time())
print('RTC time:', utime.localtime()) print('RTC time: ', utime.localtime())
print('Setting DS3231 from RTC') print('Setting DS3231 from RTC')
ds3231.save_time() # Set DS3231 from RTC ds3231.save_time() # Set DS3231 from RTC
print('DS3231 time:', ds3231.get_time()) print('DS3231 time:', ds3231.get_time())
print('RTC time:', utime.localtime()) print('RTC time: ', utime.localtime())
print('Running RTC test for 2 mins') print('Running RTC test for 2 mins')
print('RTC leads DS3231 by', ds3231.rtc_test(120, True), 'ppm') print('RTC leads DS3231 by', ds3231.rtc_test(120, True), 'ppm')