MoistureSoftware/Source/APPDEF.H

167 lines
5.4 KiB
C

/**************** (C) COPYRIGHT 2023 山东云唐智能科技有限公司 *******************
* 文 件 名:
* 创 建 者: Kaiser
* 描 述 :
* 最后修改:
*********************************** 修订记录 ************************************
* 版 本:
* 修订人:
********************************************************************************/
/******************************** 功能说明 *************************************
*
*******************************************************************************/
#ifndef _APPDEF_H_
#define _APPDEF_H_
#include "BSP.H"
union floattouint16_t { // 32位浮点数转换为16位整数
float f;
uint32_t u32;
uint16_t u16[2];
uint8_t u8[4];
};
extern union floattouint16_t FtU;
/******************************** 功能说明 *************************************
*
*******************************************************************************/
extern void
delay_us(uint32_t us);
/******************************** 功能说明 *************************************
*
*******************************************************************************/
extern void ModbusPoll(const void *parg);
extern void MODBUS_Init(uint8_t MBAddress);
extern uint16_t usRegInputBuf[];
extern uint16_t usRegHoldingBuf[];
extern uint8_t ucRegDiscBuf[];
extern uint8_t ucRegCoilsBuf[];
#define RegCoilsBufRead(addr) ((ucRegCoilsBuf[(addr) / 8u]) & (0x01 << ((addr) % 8)))
#define RegCoilsBufRst(addr) ((ucRegCoilsBuf[(addr) / 8u]) &= (~(0x01 << ((addr) % 8))))
#define RegCoilsBufSet(addr) ((ucRegCoilsBuf[(addr) / 8u]) |= (0x01 << ((addr) % 8)))
#define RegDiscBufRead(addr) ((ucRegCoilsBuf[(addr) / 8u]) & (0x01 << ((addr) % 8)))
#define RegDiscBufRst(addr) ((ucRegDiscBuf[(addr) / 8u]) &= (~(0x01 << ((addr) % 8))))
#define RegDiscBufSet(addr) ((ucRegDiscBuf[(addr) / 8u]) |= (0x01 << ((addr) % 8)))
/******************************** 功能说明 *************************************
*
*******************************************************************************/
extern void delay_us(uint32_t us);
/******************************** 功能说明 *************************************
*
*******************************************************************************/
extern float UltrasoundData;
extern float H, S, V;
extern int sR, sG, sB;
struct ColorH {
float A; // 三次方
float B; // 二次方
float C; // 一次方
float D; // 常数
};
extern struct ColorH ColorHSV;
extern float ColorOut;
/******************************** 功能说明 *************************************
*
*******************************************************************************/
extern void GPIO_InPutset(void);
extern uint8_t InstrumentTypeRead(void);
extern bool SafeCheck(void);
extern void INIT_CS555X(void);
extern void AD7190_Init(void);
extern void AD7190_ReadVoltage(void);
extern void WeightCtrl_Init(void);
struct uCalibrateWeight {
double WeightSlope; // 斜率
int32_t WeightZero; // 零点
};
extern struct uCalibrateWeight CalibrateWeight;
extern struct uCalibrateWeight CalibrateWeight2;
extern uint32_t HX711Data; // 原始数据
extern uint32_t HX711Zero; // 原始数据
extern float WeightData; // 重量数据
extern float WeightData2; // 重量数据
extern float ADvalue2filter;
extern void MAX6675_Init(void);
extern void USARTHMIInit(void);
extern void BIOS_USART2_Init(uint32_t baudrate);
extern void USART2Print(uint8_t *buffer, uint8_t lenth);
extern void AC_CTRL_Init(void);
extern void Pump_OutCmd(bool NewState);
/******************************** 功能说明 *************************************
*
*******************************************************************************/
struct Pset {
uint16_t CRC_Head; // CRC校验头
uint8_t AutoTimeStop; // 自动停机时间
uint8_t AutoWeightChange; // 自动停机重量
uint8_t TempSet; // 干燥温度
uint8_t TimeStop; // 停机时间
uint8_t AutoStyle; // 停机方式 自动
uint8_t FastStyle; // 干燥模式 快速
uint8_t FilterQ; // 滤波器阶数
uint8_t SensorQ; // 传感器阶数
uint8_t HoldTime; // 稳定时间
uint8_t RuBianLiang; // 蠕变量
uint8_t RuBianTime; // 蠕变时间
uint8_t ZeroTrack; // 零点跟踪
float TempDelta; // 校准温度差
float WeightSet; // 校准重量
uint32_t BaudRate; // 波特率
bool SW0; // 自定义开关1
bool SW1; // 自定义开关2
bool SW2; // 自定义开关3
bool PercentChange; // 含水量含固量
uint8_t Title[32]; // 标题
uint8_t TitleOne[32]; // 标题1
uint8_t TitleTwo[32]; // 标题2
uint8_t TitleThree[32]; // 标题3
uint8_t UserName[16]; // 用户名
uint8_t UserPwd[16]; // 密码
uint16_t CRC_Tail; // CRC校验尾
};
extern struct Pset Set;
extern void FM24Init(void);
extern void FM24_Write(uint16_t addr, uint8_t *data, uint8_t len);
extern void FM24_Read(uint16_t addr, uint8_t *data, uint8_t len);
#define CalibrateWeight2Set 0x0140u
#define RW_Set 0x0200u
#define CRCHead 0x55AAu
// #define RW_WeightSlope 0x0104u
// #define RW_WeightZero 0x0108u
// #define RW_ColorHSV_A 0x010Cu
// #define RW_ColorHSV_B 0x0110u
// #define RW_ColorHSV_C 0x0114u
// #define RW_ColorHSV_D 0x0118u
// #define RW_BackADCLimit 0x011Cu
// #define RW_RunStop 0x0120u
// #define RW_CRC_End 0x0180u
#define CRCEnd 0xAA55u
extern void BIOS_NVIC_Init(void);
extern bool weightChanging;
#endif
/******** (C) COPYRIGHT 2023 山东云唐智能科技有限公司 **** End Of File ********/