G-CAMS-DATU/applications/ADC/adc.h

113 lines
2.6 KiB
C
Raw Normal View History

2024-05-13 08:08:47 +00:00
/*
* Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2024-05-11 LJ the first version
*/
#ifndef APPLICATIONS_ADC_ADC_H_
#define APPLICATIONS_ADC_ADC_H_
#include <rtthread.h>
#include <rtdevice.h>
#define ADC1_CHANNEL_0 0 /* ADC 通道 */
#define ADC2_CHANNEL_4 4 /* ADC 通道 */
#define ADC3_CHANNEL_10 10 /* ADC 通道 */
#define ADC3_CHANNEL_11 11 /* ADC 通道 */
#define REFER_VOLTAGE 330 /* 参考电压 3.3V,数据精度乘以100保留2位小数 */
#define CONVERT_BITS (1 << 12) /* 转换位数为12位 */
typedef struct
{
rt_uint16_t ADC1_0_vol; // 读取电压值
rt_uint16_t ADC2_4_vol; // 读取电压值
rt_uint16_t ADC3_10_vol; // 读取电压值
rt_uint16_t ADC3_11_vol; // 读取电压值
rt_uint16_t ADC1_0_value; // 读取电压值
rt_uint16_t ADC2_4_value; // 读取电压值
rt_uint16_t ADC3_10_value; // 读取电压值
rt_uint16_t ADC3_11_value; // 读取电压值
rt_uint16_t ADC1_0_h_vol; // 0-10V
rt_uint16_t ADC2_4_h_vol; //
rt_uint16_t ADC1_0_Current; // 4-20ma
rt_uint16_t ADC2_4_Current; //
2024-05-17 07:00:05 +00:00
rt_uint8_t ADC1_0_ZL_H; // 张力高位
rt_uint8_t ADC2_4_ZL_H; //
rt_uint8_t ADC1_0_ZL_L; // 张力低位
rt_uint8_t ADC2_4_ZL_L; //
2024-05-13 08:08:47 +00:00
rt_uint8_t log;
rt_uint8_t ADC1_mode; //ADC1模式 1:0-10V 2:4-20ma 3:3.3v
rt_uint8_t ADC2_mode;//ADC2模式
} ADC_Data; // ADC状态
//ADC初始化函数
rt_uint8_t adc_init();
//ADC读取数据
void adc_read();
//获取3V3的值ADC
rt_uint16_t get_ADC3_10_vol();
//获取3V3的值ADC
rt_uint16_t get_ADC3_11_vol();
/**
* 0-10vADC值
* @return
*/
rt_uint16_t get_ADC1_0_h_vol();
/**
* 4-10ma电流值
* @return
*/
rt_uint16_t get_ADC1_0_Current();
/**
* 0-10vADC值
* @return
*/
rt_uint16_t get_ADC2_4_h_vol();
/**
* 4-10ma电流值
* @return
*/
rt_uint16_t get_ADC2_4_Current();
2024-05-17 07:00:05 +00:00
/**
* ADC1张力值
* @return
*/
rt_uint8_t get_ADC1_0_H_ZL();
rt_uint8_t get_ADC1_0_L_ZL();
/**
* ADC2张力值
* @return
*/
rt_uint8_t get_ADC2_4_H_ZL();
rt_uint8_t get_ADC2_4_L_ZL();
2024-05-13 08:08:47 +00:00
//ADC log 功能开启
void set_ADC_log(rt_uint8_t log);
2024-05-17 07:00:05 +00:00
//设置ADC1的模式0:0-10V 1:4-20ma
2024-05-13 08:08:47 +00:00
void set_ADC1_mode(rt_uint8_t mode);
//设置ADC2的模式1:0-10V 2:4-20ma
void set_ADC2_mode(rt_uint8_t mode);
//获取ADC1的模式1:0-10V 2:4-20ma
rt_uint8_t get_ADC1_mode();
//获取ADC2的模式1:0-10V 2:4-20ma
rt_uint8_t get_ADC2_mode();
#endif /* APPLICATIONS_ADC_ADC_H_ */