Electricity/FWLIB/include/ENS_CURRENT_CALIBRATION.h

98 lines
2.7 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
*Copyright ,2023 , NANOCHAP
*File name: ENS1_CURRENT_CALIBRATION.H
*Author:
*Version: V1.0
*Date: 2023-11-
*Description:
*Function List:
History:
1.V1.0
Date:
Author:
Modification: 初版
*/
#ifndef ENS_CURRENT_CALIBRATION_H
#define ENS_CURRENT_CALIBRATION_H
#include "my_header.h"
#include "ENS1_TIMER.h"
#define PI 3.1415
extern volatile uint8_t statics_config; //通道状态标志,[3:0] 每一位对应一个通道的状态 0关闭中 1开启状态
extern uint8_t unit_current[4];
extern volatile uint32_t NUM_OF_PULSES_THRESHOLD[4];
extern volatile uint32_t wave_gen_irq_occurred[4];
/* --------------------------电刺激有关的参数以及通道状态--------------------------- */
/*
1、基本参数
·基础波形类型
·正向脉宽:
·负向脉宽:
·波形频率:
·电流大小:
·延迟输出时间
2、复杂波形参数
·中断点设置每次可以设置两个点且第1点需要小于第2点
·交替波形频率:
·总输出时间设置
·脉冲群中的脉冲个数
·脉冲群与脉冲群的间隔发生时间
*/
typedef enum {SQUARE_WAVE = 0 ,SINE_WAVE = 1, TRIANGULAR_WAVE = 2 }BasicWaveformType;
typedef struct COMPLEX_WAVEFORM_PARA
{
uint16_t AlternatingFreq_HZ;
uint32_t TotalOutputTime_S;
uint32_t NumOfPulseGroups;
uint32_t TimeOfPulseGroups_MS;
}STRUCT_COMPLEX_WAVEFORM_PARA;
typedef struct WAVEFORM_PARA
{
BasicWaveformType Type;
uint32_t PositivePulseWidth;
uint32_t NegativePulseWidth;
//uint32_t WaveformFreq;
uint32_t ClientTime;
uint8_t DeadTime;
uint32_t DelayOutputTime_US;
STRUCT_COMPLEX_WAVEFORM_PARA OtherWaveformPara;
}STRUCT_WAVEFORM_PARA;
extern STRUCT_WAVEFORM_PARA ParaSet_waveform[4];
/* ------------------------------------------------------------------------- */
/*--------------------------------波形设置的函数-----------------------------*/
typedef enum ENS_DRV_CONFIG
{
DISABLE_ALL_BIT = -1,
REST_BIT = 1,
NEGATIVE_BIT =2,
SILENT_BIT =4,
SOURCE_B_BIT = 8,
ALTERNATING_POSITIVE_BIT =16,
CONTINUE_REPEATING_BIT = 32,
MULTI_ELECTRODE_BIT = 64 ,
ENABLE_ALL_BIT = 0X7F
}DRV_CONFIG;
/*获取到FT测试后的实际测量单元电流值 */
extern uint8_t GET_FT_CURRENT(void);
/*波形参数的设置*/
extern uint32_t StimulatorInit(CHANNEL_NUM CHANNEL_X);
/*输出电流 / 频率*/
extern uint8_t CURRENT_AMPLITUDE_MODIFY(CHANNEL_NUM CHANNEL_X , float mA);
extern uint32_t CURRENT_FREQ_MODIFY(CHANNEL_NUM CHANNEL_X , uint32_t freq);
/*电刺激时间*/
extern uint32_t StimuTimeCount_S(CHANNEL_NUM CHANNEL_X , TIME_COUNT_MODE MODE);
/*启动停止*/
void StartStimulatorOut(CHANNEL_NUM CHANNEL_X);
void StopStimulatorOut(CHANNEL_NUM CHANNEL_X);
#endif