commit
59eb2affc5
4 changed files with 157 additions and 7 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,3 +1,4 @@
|
|||
html/
|
||||
Doxyfile
|
||||
.vscode/
|
||||
.pio/
|
||||
|
|
@ -223,3 +223,106 @@ bool Adafruit_INA260::conversionReady(void) {
|
|||
Adafruit_I2CRegisterBits(MaskEnable, 1, 3);
|
||||
return conversion_ready.read();
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Reads the current parameter that asserts the ALERT pin
|
||||
@return The current parameter that asserts the ALERT PIN
|
||||
*/
|
||||
/**************************************************************************/
|
||||
INA260_AlertType Adafruit_INA260::getAlertType(void) {
|
||||
Adafruit_I2CRegisterBits alert_type =
|
||||
Adafruit_I2CRegisterBits(MaskEnable, 6, 10);
|
||||
return (INA260_AlertType)alert_type.read();
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Sets which parameter asserts the ALERT pin
|
||||
@param alert
|
||||
The parameter which asserts the ALERT pin
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void Adafruit_INA260::setAlertType(INA260_AlertType alert) {
|
||||
Adafruit_I2CRegisterBits alert_type =
|
||||
Adafruit_I2CRegisterBits(MaskEnable, 6, 10);
|
||||
alert_type.write(alert);
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Reads the current alert limit setting
|
||||
@return The current bus alert limit setting
|
||||
*/
|
||||
/**************************************************************************/
|
||||
float Adafruit_INA260::getAlertLimit(void) {
|
||||
Adafruit_I2CRegisterBits alert_limit =
|
||||
Adafruit_I2CRegisterBits(AlertLimit, 16, 0);
|
||||
return (float)alert_limit.read() * 1.25;
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Sets the Alert Limit
|
||||
@param limit
|
||||
The new limit that triggers the alert
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void Adafruit_INA260::setAlertLimit(float limit) {
|
||||
Adafruit_I2CRegisterBits alert_limit =
|
||||
Adafruit_I2CRegisterBits(AlertLimit, 16, 0);
|
||||
alert_limit.write((int16_t)(limit / 1.25));
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Reads the current alert polarity setting
|
||||
@return The current bus alert polarity setting
|
||||
*/
|
||||
/**************************************************************************/
|
||||
INA260_AlertPolarity Adafruit_INA260::getAlertPolarity(void) {
|
||||
Adafruit_I2CRegisterBits alert_polarity =
|
||||
Adafruit_I2CRegisterBits(MaskEnable, 1, 1);
|
||||
return (INA260_AlertPolarity)alert_polarity.read();
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Sets Alert Polarity Bit
|
||||
@param polarity
|
||||
The polarity of the alert pin
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void Adafruit_INA260::setAlertPolarity(INA260_AlertPolarity polarity) {
|
||||
Adafruit_I2CRegisterBits alert_polarity =
|
||||
Adafruit_I2CRegisterBits(MaskEnable, 1, 1);
|
||||
alert_polarity.write(polarity);
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Reads the current alert latch setting
|
||||
@return The current bus alert latch setting
|
||||
*/
|
||||
/**************************************************************************/
|
||||
INA260_AlertLatch Adafruit_INA260::getAlertLatch(void) {
|
||||
Adafruit_I2CRegisterBits alert_latch =
|
||||
Adafruit_I2CRegisterBits(MaskEnable, 1, 0);
|
||||
return (INA260_AlertLatch)alert_latch.read();
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Sets Alert Latch Bit
|
||||
@param state
|
||||
The parameter which asserts the ALERT pin
|
||||
*/
|
||||
/**************************************************************************/
|
||||
void Adafruit_INA260::setAlertLatch(INA260_AlertLatch state) {
|
||||
Adafruit_I2CRegisterBits alert_latch =
|
||||
Adafruit_I2CRegisterBits(MaskEnable, 1, 0);
|
||||
alert_latch.write(state);
|
||||
}
|
||||
/**************************************************************************/
|
||||
/*!
|
||||
@brief Checks if the Alert Flag is set
|
||||
@return true if the flag is set
|
||||
*/
|
||||
/**************************************************************************/
|
||||
bool Adafruit_INA260::alertFunctionFlag(void) {
|
||||
Adafruit_I2CRegisterBits alert_function_flag =
|
||||
Adafruit_I2CRegisterBits(MaskEnable, 1, 4);
|
||||
return alert_function_flag.read();
|
||||
}
|
||||
|
|
@ -39,15 +39,14 @@
|
|||
* Allowed values for setMode.
|
||||
*/
|
||||
typedef enum _mode {
|
||||
INA260_MODE_SHUTDOWN = 0x00, /**< SHUTDOWN: Minimize quiescient current and
|
||||
INA260_MODE_SHUTDOWN = 0x00, /**< SHUTDOWN: Minimize quiescient current and
|
||||
turn off current into the device inputs. Set
|
||||
another mode to exit shutown mode **/
|
||||
INA260_MODE_TRIGGERED =
|
||||
0x03, /**< TRIGGERED: Trigger a one-shot measurement
|
||||
of current and bus voltage. Set the TRIGGERED
|
||||
mode again to take a new measurement **/
|
||||
INA260_MODE_TRIGGERED = 0x03, /**< TRIGGERED: Trigger a one-shot measurement
|
||||
of current and bus voltage. Set the TRIGGERED
|
||||
mode again to take a new measurement **/
|
||||
INA260_MODE_CONTINUOUS = 0x07, /**< CONTINUOUS: (Default) Continuously update
|
||||
the current, bus voltage and power
|
||||
the current, bus voltage and power
|
||||
registers with new measurements **/
|
||||
} INA260_MeasurementMode;
|
||||
|
||||
|
|
@ -83,6 +82,43 @@ typedef enum _count {
|
|||
INA260_COUNT_1024, ///< Window size: 1024 samples
|
||||
} INA260_AveragingCount;
|
||||
|
||||
/**
|
||||
* @brief Alert trigger options.
|
||||
*
|
||||
* Allowed values for setAlertType.
|
||||
*/
|
||||
typedef enum _alert_type {
|
||||
INA260_ALERT_CONVERSION_READY = 0x1, ///< Trigger on conversion ready
|
||||
INA260_ALERT_OVERPOWER = 0x2, ///< Trigger on power over limit
|
||||
INA260_ALERT_UNDERVOLTAGE = 0x4, ///< Trigger on bus voltage under limit
|
||||
INA260_ALERT_OVERVOLTAGE = 0x8, ///< Trigger on bus voltage over limit
|
||||
INA260_ALERT_UNDERCURRENT = 0x10, ///< Trigger on current under limit
|
||||
INA260_ALERT_OVERCURRENT = 0x20, ///< Trigger on current over limit
|
||||
INA260_ALERT_NONE = 0x0, ///< Do not trigger alert pin (Default)
|
||||
} INA260_AlertType;
|
||||
|
||||
/**
|
||||
* @brief Alert pin polarity options.
|
||||
*
|
||||
* Allowed values for setAlertPolarity.
|
||||
*/
|
||||
typedef enum _alert_polarity {
|
||||
INA260_ALERT_POLARITY_NORMAL = 0x0, ///< Active high open-collector (Default)
|
||||
INA260_ALERT_POLARITY_INVERTED = 0x1, ///< Active low open-collector
|
||||
} INA260_AlertPolarity;
|
||||
|
||||
/**
|
||||
* @brief Alert pin latch options.
|
||||
*
|
||||
* Allowed values for setAlertLatch.
|
||||
*/
|
||||
typedef enum _alert_latch {
|
||||
INA260_ALERT_LATCH_ENABLED = 0x1, /**< Alert will latch until Mask/Enable
|
||||
register is read **/
|
||||
INA260_ALERT_LATCH_TRANSPARENT = 0x0, /**< Alert will reset when fault is
|
||||
cleared **/
|
||||
} INA260_AlertLatch;
|
||||
|
||||
/*!
|
||||
* @brief Class that stores state and functions for interacting with
|
||||
* INA260 Current and Power Sensor
|
||||
|
|
@ -100,6 +136,16 @@ public:
|
|||
INA260_MeasurementMode getMode(void);
|
||||
|
||||
bool conversionReady(void);
|
||||
bool alertFunctionFlag(void);
|
||||
|
||||
float getAlertLimit(void);
|
||||
void setAlertLimit(float limit);
|
||||
INA260_AlertLatch getAlertLatch(void);
|
||||
void setAlertLatch(INA260_AlertLatch state);
|
||||
INA260_AlertPolarity getAlertPolarity(void);
|
||||
void setAlertPolarity(INA260_AlertPolarity polarity);
|
||||
INA260_AlertType getAlertType(void);
|
||||
void setAlertType(INA260_AlertType alert);
|
||||
|
||||
INA260_ConversionTime getCurrentConversionTime(void);
|
||||
void setCurrentConversionTime(INA260_ConversionTime time);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
name=Adafruit INA260 Library
|
||||
version=1.3.5
|
||||
version=1.4.0
|
||||
author=Adafruit
|
||||
maintainer=Adafruit <info@adafruit.com>
|
||||
sentence=Arduino library for the INA260 sensors in the Adafruit shop
|
||||
|
|
|
|||
Loading…
Reference in a new issue