This commit is contained in:
2025-10-17 00:29:14 +08:00
parent a6ddc01c98
commit e7b0457fb9
9 changed files with 482 additions and 18 deletions

84
code/ina226.h Normal file
View File

@@ -0,0 +1,84 @@
// <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>: GB18030
/*
* ina226.h
*
* Created on: 2025<32><35>10<31><30>16<31><36>
* Author: LHYe200
*/
#ifndef CODE_INA226_H_
#define CODE_INA226_H_
#include "zf_common_typedef.h"
#define INA226_NUM 2
#define INA226_ALT_PIN {P15_2, P15_3}
#define INA226_ADDR {0x40, 0x45}
#define INA226_DEF_MODE {0x44, 0x4F}
#define INA226_DEF_CAL {0x0D, 0x1B}
#define INA226_READ_TIME_MS 1
#define INA226_SOFT_WAIT_TIME 0
#define INA226_SDA_PIN P15_1
#define INA226_SCL_PIN P15_0
#define INA226_CONFIG_REG 0x00
#define INA226_SHUNTVOT_REG 0x01
#define INA226_BUSVOT_REG 0x02
#define INA226_POWER_REG 0x03
#define INA226_CURRENT_REG 0x04
#define INA226_CALIBRATION_REG 0x05
typedef struct
{
uint8 addr;
float max_current_A;
float rshunt_mOhm;
float vot_fix_k;
float amp_fix_k;
uint8 mode[2];
} INA226_Config;
typedef struct
{
float c_lsb_mA;
uint8 cal[2];
} INA226_Calibration;
typedef struct
{
float voltage_V;
float current_A;
float power_W;
float shunt_voltage_mV;
float energy_J;
float quantity_C;
uint8 alert_flag;
uint8 org_reg[4][2];
float past_voltage_V[10];
float past_current_A[10];
} INA226_Result;
typedef struct
{
INA226_Config config;
INA226_Calibration calibration;
INA226_Result result;
} INA226_t;
extern INA226_t ina226[INA226_NUM];
void INA226_Single_Init(INA226_t *ina226, uint8 addr, uint8 mode[2], float max_current_A, float rshunt_mOhm, float amp_fix_k, float vot_fix_k);
void INA226_Read(INA226_t *ina226);
#endif /* CODE_INA226_H_ */