mirror of
https://gitlab.com/hyperglitch/jellyfish.git
synced 2026-01-22 02:48:50 +00:00
60 lines
1.3 KiB
C
60 lines
1.3 KiB
C
/*
|
|
* SPDX-FileCopyrightText: 2025 Igor Brkic <igor@hyperglitch.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
|
|
#ifndef JF_MEASURE_H
|
|
#define JF_MEASURE_H
|
|
|
|
#include <stdint.h>
|
|
#include <stdbool.h>
|
|
#include "jf_calibration.h"
|
|
|
|
#define JF_MEASURE_BUFFER_SIZE 120
|
|
|
|
typedef enum {
|
|
JF_MEAS_CURR_1 = 0x01,
|
|
JF_MEAS_CURR_2 = 0x02,
|
|
JF_MEAS_VOUT = 0x04,
|
|
JF_MEAS_AIN = 0x08,
|
|
JF_MEAS_DIG = 0x10,
|
|
JF_MEAS_RANGE = 0x20,
|
|
} jf_measure_channel_t;
|
|
|
|
typedef enum {
|
|
JF_RANGE_3A = 0x00,
|
|
JF_RANGE_300MA = 0x01,
|
|
JF_RANGE_30MA = 0x02,
|
|
JF_RANGE_3MA = 0x03,
|
|
JF_RANGE_300UA = 0x04,
|
|
JF_RANGE_30UA = 0x05,
|
|
JF_RANGE_AUTO = 0x06,
|
|
JF_RANGE_OFF = 0x07,
|
|
} jf_measure_range_t;
|
|
|
|
typedef struct {
|
|
float Isense2;
|
|
float Isense1;
|
|
float Vsense;
|
|
float ain;
|
|
uint8_t dig[5];
|
|
uint8_t range;
|
|
} jf_measure_data_t;
|
|
|
|
void jf_measure_fetch_data();
|
|
jf_measure_data_t jf_measure_get_current_values();
|
|
uint16_t jf_measure_get_recent_data(jf_measure_data_t *data, uint16_t size, bool from_isr);
|
|
|
|
void jf_measure_init();
|
|
|
|
const jf_calibration_t * jf_measure_get_calibration();
|
|
|
|
jf_measure_range_t jf_measure_get_range();
|
|
void jf_measure_set_range(jf_measure_range_t range, bool from_isr);
|
|
|
|
int32_t jf_measure_avg_frames_parsed();
|
|
int32_t jf_measure_avg_buffer_full();
|
|
|
|
#endif //JF_MEASURE_H
|