Files
ads1256/ads1256.h
2026-01-22 11:55:59 +03:00

99 lines
2.3 KiB
C

#ifndef _ADS1256_H
#define _ADS1256_H
#include "stdint.h"
#include "ads1256_defines.h"
#define STATUS 0x00
#define MUX 0x01
#define ADCON 0x02
#define DRATE 0x03
#define IO 0x04
#define OFC0 0x05
#define OFC1 0x06
#define OFC2 0x07
#define FSC0 0x08
#define FSC1 0x09
#define FSC2 0x0A
#define uV 100000000
#define mV 1000
#define MEAS_CASE_INIT 50
#define MEAS_CASE_SET_CH 51
#define MEAS_CASE_GET_CH_DATA 52
#define MEAS_BUF_SIZE 16
#define CH1_INDEX_RANGE 2
#define CH2_INDEX_RANGE 6
#define CH3_INDEX_RANGE 10
#define CH4_INDEX_RANGE 14
#define CH_MEAN_SIZE 4
#define ADC_MAX_RANGE 6U
#define ADC_MAX_SPS ADC_SPS_VAR_30000_SPS
#define ADC_MAX_PGA ADC_PGA_VAR_64
#define CH_1p 0x0A
#define CH_1n 0x0B
#define CH_2p 0x14
#define CH_2n 0x15
#define CH_3p 0x1e
#define CH_3n 0x1f
#define CH_4p 0x28
#define CH_4n 0x29
#endif
void ADC_SET_CS(uint8_t state);
void ADC_SET_SYNC(uint8_t state);
void ADC_RESET_STATE(uint8_t state);
uint8_t read_reg(uint8_t reg_name);
void write_reg(uint8_t reg_name, uint8_t cmd_byte);
void ADC_change_SPS(uint8_t SPS);
void ADC_set_SPS(uint8_t SPS);
void ADC_init(uint8_t buf_state);
uint8_t ADC_get_SPS(void);
void ADC_change_PGA(uint8_t PGA);
uint8_t ADC_get_PGA(void);
void ADC_set_PGA(uint8_t PGA_val_new);
void ADC_SelfCal();
void ADC_sync(uint8_t state);
void ADC_sync_trig(void);
void ADC_setCh_p(uint8_t adcx, uint8_t chx);
void ADC_setCh_n(uint8_t adcx, uint8_t chx);
int64_t ADC_read(uint8_t ADC_number);
int64_t ADC_read_aver(uint8_t adcx, uint8_t chx);
void iter_delay(long delay);
void ADC_set_pos_ch(uint8_t ch);
void ADC_set_neg_ch(uint8_t ch);
void ADC_revpol_read(int64_t *ADC_arrptr);
uint8_t ADC_meas_ready(void);
uint8_t ADC_get_currMeasCh(void);