Firmware updates - sensors, calibration, View support, etc (#9)
- Modify TLV493d library to expose frame counter in order to check for lockup, and implement auto-reset in tlv_sensor in case of lockup - Implement MT6701 SimpleFOC sensor - Make display optional - Add optional LED, strain, ALS support - Connect ALS to LED and display brightness - Hardcoded strain gauge thresholds and haptic feedback
This commit is contained in:
97
firmware/lib/tlv/src/util/BusInterface.cpp
Normal file
97
firmware/lib/tlv/src/util/BusInterface.cpp
Normal file
@@ -0,0 +1,97 @@
|
||||
/**
|
||||
* BusInterface.cpp - Part of the library for Arduino to control the TLV493D-A1B6 3D magnetic sensor.
|
||||
*
|
||||
* The 3D magnetic sensor TLV493D-A1B6 offers accurate three dimensional sensing with extremely low power consumption
|
||||
* in a small 6-pin package. With an opportunity to detect the magnetic field in x, y, and z-direction the sensor is
|
||||
* ideally suited for the measurement of 3D movements, linear movements and rotation movements.
|
||||
*
|
||||
* Have a look at the application note/reference manual for more information.
|
||||
*
|
||||
* Copyright (c) 2018 Infineon Technologies AG
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||
* following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "BusInterface2.h"
|
||||
|
||||
void tlv493d::initInterface(BusInterface_t *interface, TwoWire *bus, uint8_t adress)
|
||||
{
|
||||
uint8_t i;
|
||||
interface->bus = bus;
|
||||
interface->adress = adress;
|
||||
for(i = 0; i < TLV493D_BUSIF_READSIZE; i++) {
|
||||
interface->regReadData[i] = 0x00;;
|
||||
}
|
||||
for(i = 0; i < TLV493D_BUSIF_WRITESIZE; i++) {
|
||||
interface->regWriteData[i] = 0x00;;
|
||||
}
|
||||
}
|
||||
|
||||
bool tlv493d::readOut(BusInterface_t *interface)
|
||||
{
|
||||
return readOut(interface, TLV493D_BUSIF_READSIZE);
|
||||
}
|
||||
|
||||
bool tlv493d::readOut(BusInterface_t *interface, uint8_t count)
|
||||
{
|
||||
bool ret = BUS_ERROR;
|
||||
int i;
|
||||
if(count > TLV493D_BUSIF_READSIZE)
|
||||
{
|
||||
count = TLV493D_BUSIF_READSIZE;
|
||||
}
|
||||
uint8_t received_bytes = interface->bus->requestFrom(interface->adress,count);
|
||||
if (received_bytes == count)
|
||||
{
|
||||
for(i = 0; i < count; i++)
|
||||
{
|
||||
interface->regReadData[i] = interface->bus->read();
|
||||
}
|
||||
ret = BUS_OK;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool tlv493d::writeOut(BusInterface_t *interface)
|
||||
{
|
||||
return writeOut(interface, TLV493D_BUSIF_WRITESIZE);
|
||||
}
|
||||
|
||||
bool tlv493d::writeOut(BusInterface_t *interface, uint8_t count)
|
||||
{
|
||||
bool ret = BUS_ERROR;
|
||||
int i;
|
||||
if(count > TLV493D_BUSIF_WRITESIZE)
|
||||
{
|
||||
count = TLV493D_BUSIF_WRITESIZE;
|
||||
}
|
||||
interface->bus->beginTransmission(interface->adress);
|
||||
for(i = 0; i < count; i++)
|
||||
{
|
||||
interface->bus->write(interface->regWriteData[i]);
|
||||
}
|
||||
if (interface->bus->endTransmission() == 0)
|
||||
{
|
||||
ret = BUS_OK;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
55
firmware/lib/tlv/src/util/BusInterface.h
Normal file
55
firmware/lib/tlv/src/util/BusInterface.h
Normal file
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* BusInterface.h - Part of the library for Arduino to control the TLV493D-A1B6 3D magnetic sensor.
|
||||
*
|
||||
* The 3D magnetic sensor TLV493D-A1B6 offers accurate three dimensional sensing with extremely low power consumption
|
||||
* in a small 6-pin package. With an opportunity to detect the magnetic field in x, y, and z-direction the sensor is
|
||||
* ideally suited for the measurement of 3D movements, linear movements and rotation movements.
|
||||
*
|
||||
* Have a look at the application note/reference manual for more information.
|
||||
*
|
||||
* Copyright (c) 2018 Infineon Technologies AG
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||
* following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef TLV493D_BUSIF_H_INCLUDED
|
||||
#define TLV493D_BUSIF_H_INCLUDED
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <Wire.h>
|
||||
|
||||
#define TLV493D_BUSIF_READSIZE 10
|
||||
#define TLV493D_BUSIF_WRITESIZE 4
|
||||
|
||||
namespace tlv493d
|
||||
{
|
||||
|
||||
typedef struct
|
||||
{
|
||||
TwoWire *bus;
|
||||
uint8_t adress;
|
||||
uint8_t regReadData[TLV493D_BUSIF_READSIZE];
|
||||
uint8_t regWriteData[TLV493D_BUSIF_WRITESIZE];
|
||||
} BusInterface_t;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
52
firmware/lib/tlv/src/util/BusInterface2.h
Normal file
52
firmware/lib/tlv/src/util/BusInterface2.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/**
|
||||
* BusInterface2.h - Part of the library for Arduino to control the TLV493D-A1B6 3D magnetic sensor.
|
||||
*
|
||||
* The 3D magnetic sensor TLV493D-A1B6 offers accurate three dimensional sensing with extremely low power consumption
|
||||
* in a small 6-pin package. With an opportunity to detect the magnetic field in x, y, and z-direction the sensor is
|
||||
* ideally suited for the measurement of 3D movements, linear movements and rotation movements.
|
||||
*
|
||||
* Have a look at the application note/reference manual for more information.
|
||||
*
|
||||
* Copyright (c) 2018 Infineon Technologies AG
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||
* following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef TLV493D_BUSIF_2_H_INCLUDED
|
||||
#define TLV493D_BUSIF_2_H_INCLUDED
|
||||
|
||||
#include "BusInterface.h"
|
||||
|
||||
#define BUS_ERROR 1
|
||||
#define BUS_OK 0
|
||||
|
||||
namespace tlv493d
|
||||
{
|
||||
|
||||
void initInterface(BusInterface_t *interface, TwoWire *bus, uint8_t adress);
|
||||
bool readOut(BusInterface_t *interface);
|
||||
bool readOut(BusInterface_t *interface, uint8_t count);
|
||||
bool writeOut(BusInterface_t *interface);
|
||||
bool writeOut(BusInterface_t *interface, uint8_t count);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
54
firmware/lib/tlv/src/util/RegMask.cpp
Normal file
54
firmware/lib/tlv/src/util/RegMask.cpp
Normal file
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* RegMask.cpp - Part of the library for Arduino to control the TLV493D-A1B6 3D magnetic sensor.
|
||||
*
|
||||
* The 3D magnetic sensor TLV493D-A1B6 offers accurate three dimensional sensing with extremely low power consumption
|
||||
* in a small 6-pin package. With an opportunity to detect the magnetic field in x, y, and z-direction the sensor is
|
||||
* ideally suited for the measurement of 3D movements, linear movements and rotation movements.
|
||||
*
|
||||
* Have a look at the application note/reference manual for more information.
|
||||
*
|
||||
* Copyright (c) 2018 Infineon Technologies AG
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||
* following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "RegMask.h"
|
||||
|
||||
uint8_t tlv493d::getFromRegs(const RegMask_t *mask, uint8_t *regData)
|
||||
{
|
||||
return (regData[mask->byteAdress] & mask->bitMask) >> mask->shift;
|
||||
}
|
||||
|
||||
|
||||
uint8_t tlv493d::setToRegs(const RegMask_t *mask, uint8_t *regData, uint8_t toWrite)
|
||||
{
|
||||
if(mask->rw == REGMASK_WRITE)
|
||||
{
|
||||
uint8_t regValue = regData[mask->byteAdress];
|
||||
regValue &= ~(mask->bitMask);
|
||||
regValue |= (toWrite << mask->shift) & mask->bitMask;
|
||||
regData[mask->byteAdress] = regValue;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
57
firmware/lib/tlv/src/util/RegMask.h
Normal file
57
firmware/lib/tlv/src/util/RegMask.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/**
|
||||
* RegMask.h - Part of the library for Arduino to control the TLV493D-A1B6 3D magnetic sensor.
|
||||
*
|
||||
* The 3D magnetic sensor TLV493D-A1B6 offers accurate three dimensional sensing with extremely low power consumption
|
||||
* in a small 6-pin package. With an opportunity to detect the magnetic field in x, y, and z-direction the sensor is
|
||||
* ideally suited for the measurement of 3D movements, linear movements and rotation movements.
|
||||
*
|
||||
* Have a look at the application note/reference manual for more information.
|
||||
*
|
||||
* Copyright (c) 2018 Infineon Technologies AG
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||
* following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef TLV493D_REGMASK_H_INCLUDED
|
||||
#define TLV493D_REGMASK_H_INCLUDED
|
||||
|
||||
#include <Arduino.h>
|
||||
|
||||
#define REGMASK_READ 0
|
||||
#define REGMASK_WRITE 1
|
||||
|
||||
namespace tlv493d
|
||||
{
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t rw;
|
||||
uint8_t byteAdress;
|
||||
uint8_t bitMask;
|
||||
uint8_t shift;
|
||||
} RegMask_t;
|
||||
|
||||
uint8_t getFromRegs(const RegMask_t *mask, uint8_t *regData);
|
||||
uint8_t setToRegs(const RegMask_t *mask, uint8_t *regData, uint8_t toWrite);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
134
firmware/lib/tlv/src/util/Tlv493d_conf.h
Normal file
134
firmware/lib/tlv/src/util/Tlv493d_conf.h
Normal file
@@ -0,0 +1,134 @@
|
||||
/**
|
||||
* Tlv493d_conf.h - Part of the library for Arduino to control the TLV493D-A1B6 3D magnetic sensor.
|
||||
*
|
||||
* The 3D magnetic sensor TLV493D-A1B6 offers accurate three dimensional sensing with extremely low power consumption
|
||||
* in a small 6-pin package. With an opportunity to detect the magnetic field in x, y, and z-direction the sensor is
|
||||
* ideally suited for the measurement of 3D movements, linear movements and rotation movements.
|
||||
*
|
||||
* Have a look at the application note/reference manual for more information.
|
||||
*
|
||||
* Copyright (c) 2018 Infineon Technologies AG
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||
* following conditions are met:
|
||||
*
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
||||
* disclaimer.
|
||||
*
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY,OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef TLV493D_CONF_H_INCLUDED
|
||||
#define TLV493D_CONF_H_INCLUDED
|
||||
|
||||
#include "RegMask.h"
|
||||
#include "Tlv493d.h"
|
||||
|
||||
|
||||
#define TLV493D_DEFAULTMODE POWERDOWNMODE
|
||||
|
||||
#define TLV493D_STARTUPDELAY 40
|
||||
#define TLV493D_RESETDELAY 60
|
||||
|
||||
#define TLV493D_NUM_OF_REGMASKS 25
|
||||
#define TLV493D_NUM_OF_ACCMODES 5
|
||||
|
||||
#define TLV493D_MEASUREMENT_READOUT 7
|
||||
#define TLV493D_FAST_READOUT 3
|
||||
|
||||
#define TLV493D_B_MULT 0.098
|
||||
#define TLV493D_TEMP_MULT 1.1
|
||||
#define TLV493D_TEMP_OFFSET 315
|
||||
|
||||
|
||||
namespace tlv493d
|
||||
{
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint8_t fast;
|
||||
uint8_t lp;
|
||||
uint8_t lpPeriod;
|
||||
uint16_t measurementTime;
|
||||
} AccessMode_t;
|
||||
|
||||
enum Registers_e
|
||||
{
|
||||
R_BX1 = 0,
|
||||
R_BX2,
|
||||
R_BY1,
|
||||
R_BY2,
|
||||
R_BZ1,
|
||||
R_BZ2,
|
||||
R_TEMP1,
|
||||
R_TEMP2,
|
||||
R_FRAMECOUNTER,
|
||||
R_CHANNEL,
|
||||
R_POWERDOWNFLAG,
|
||||
R_RES1,
|
||||
R_RES2,
|
||||
R_RES3,
|
||||
W_PARITY,
|
||||
W_ADDR,
|
||||
W_INT,
|
||||
W_FAST,
|
||||
W_LOWPOWER,
|
||||
W_TEMP_NEN,
|
||||
W_LP_PERIOD,
|
||||
W_PARITY_EN,
|
||||
W_RES1,
|
||||
W_RES2,
|
||||
W_RES3
|
||||
};
|
||||
|
||||
const RegMask_t regMasks[] = {
|
||||
{ REGMASK_READ, 0, 0xFF, 0 }, // R_BX1
|
||||
{ REGMASK_READ, 4, 0xF0, 4 }, // R_BX2
|
||||
{ REGMASK_READ, 1, 0xFF, 0 }, // R_BY1
|
||||
{ REGMASK_READ, 4, 0x0F, 0 }, // R_BY2
|
||||
{ REGMASK_READ, 2, 0xFF, 0 }, // R_BZ1
|
||||
{ REGMASK_READ, 5, 0x0F, 0 }, // R_BZ2
|
||||
{ REGMASK_READ, 3, 0xF0, 4 }, // R_TEMP1
|
||||
{ REGMASK_READ, 6, 0xFF, 0 }, // R_TEMP2
|
||||
{ REGMASK_READ, 3, 0x0C, 2 }, // R_FRAMECOUNTER
|
||||
{ REGMASK_READ, 3, 0x03, 0 }, // R_CHANNEL
|
||||
{ REGMASK_READ, 5, 0x10, 4 }, // R_POWERDOWNFLAG
|
||||
{ REGMASK_READ, 7, 0x18, 3 }, // R_RES1
|
||||
{ REGMASK_READ, 8, 0xFF, 0 }, // R_RES2
|
||||
{ REGMASK_READ, 9, 0x1F, 0 }, // R_RES3
|
||||
{ REGMASK_WRITE, 1, 0x80, 7 }, // W_PARITY
|
||||
{ REGMASK_WRITE, 1, 0x60, 5 }, // W_ADDR
|
||||
{ REGMASK_WRITE, 1, 0x04, 2 }, // W_INT
|
||||
{ REGMASK_WRITE, 1, 0x02, 1 }, // W_FAST
|
||||
{ REGMASK_WRITE, 1, 0x01, 0 }, // W_LOWPOWER
|
||||
{ REGMASK_WRITE, 3, 0x80, 7 }, // W_TEMP_EN
|
||||
{ REGMASK_WRITE, 3, 0x40, 6 }, // W_LOWPOWER
|
||||
{ REGMASK_WRITE, 3, 0x20, 5 }, // W_POWERDOWN
|
||||
{ REGMASK_WRITE, 1, 0x18, 3 }, // W_RES1
|
||||
{ REGMASK_WRITE, 2, 0xFF, 0 }, // W_RES2
|
||||
{ REGMASK_WRITE, 3, 0x1F, 0 } // W_RES3
|
||||
};
|
||||
|
||||
const AccessMode_t accModes[] = {
|
||||
{ 0, 0, 0, 1000 }, // POWERDOWNMODE
|
||||
{ 1, 0, 0, 0 }, // FASTMODE
|
||||
{ 0, 1, 1, 10 }, // LOWPOWERMODE
|
||||
{ 0, 1, 0, 100 }, // ULTRALOWPOWERMODE
|
||||
{ 1, 1, 1, 10 } // MASTERCONTROLLEDMODE
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user