diff --git a/adafruit_l3gd20.py b/adafruit_l3gd20.py index 1208d63..e533dc9 100644 --- a/adafruit_l3gd20.py +++ b/adafruit_l3gd20.py @@ -67,6 +67,11 @@ L3DS20_RANGE_500DPS = const(1) L3DS20_RANGE_2000DPS = const(2) +L3DS20_RATE_100HZ = const(0x00) +L3DS20_RATE_200HZ = const(0x40) +L3DS20_RATE_400HZ = const(0x80) +L3DS20_RATE_800HZ = const(0xC0) + _L3GD20_REGISTER_CTRL_REG1 = const(0x20) _L3GD20_REGISTER_CTRL_REG4 = const(0x23) @@ -91,9 +96,12 @@ class L3GD20: :param int rng: a range value one of L3DS20_RANGE_250DPS (default), L3DS20_RANGE_500DPS, or L3DS20_RANGE_2000DPS + + :param int rate: a rate value one of L3DS20_RATE_100HZ (default), L3DS20_RATE_200HZ, + L3DS20_RATE_400HZ, or L3DS20_RATE_800HZ """ - def __init__(self, rng=L3DS20_RANGE_250DPS): + def __init__(self, rng=L3DS20_RANGE_250DPS, rate=L3DS20_RATE_100HZ): chip_id = self.read_register(_ID_REGISTER) if chip_id not in (_L3GD20_CHIP_ID, _L3GD20H_CHIP_ID): raise RuntimeError( @@ -119,7 +127,7 @@ def __init__(self, rng=L3DS20_RANGE_250DPS): # 0 XEN X-axis enable (0 = disabled, 1 = enabled) # Switch to normal mode and enable all three channels - self.write_register(_L3GD20_REGISTER_CTRL_REG1, 0x0F) + self.write_register(_L3GD20_REGISTER_CTRL_REG1, rate | 0x0F) # Set CTRL_REG2 (0x21) # ==================================================================== @@ -212,12 +220,14 @@ class L3GD20_I2C(L3GD20): gyro_raw = Struct(_L3GD20_REGISTER_OUT_X_L_X80, "