Electricity/FWLIB/include/ENS_CURRENT_CALIBRATION.h

98 lines
2.7 KiB
C
Raw Normal View History

/*
*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: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
#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; //ͨ<><CDA8>״̬<D7B4><CCAC>־<EFBFBD><D6BE>[3:0] ÿһλ<D2BB><CEBB>Ӧһ<D3A6><D2BB>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>״̬ 0<><30><EFBFBD>ر<EFBFBD><D8B1><EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
extern uint8_t unit_current[4];
extern volatile uint32_t NUM_OF_PULSES_THRESHOLD[4];
extern volatile uint32_t wave_gen_irq_occurred[4];
/* --------------------------<2D><><EFBFBD>̼<EFBFBD><CCBC>йصIJ<D8B5><C4B2><EFBFBD><EFBFBD>Լ<EFBFBD>ͨ<EFBFBD><CDA8>״̬--------------------------- */
/*
1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><EFBFBD>β<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>жϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>ÿ<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪС<EFBFBD>ڵ<EFBFBD>2<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD>е<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>
*/
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];
/* ------------------------------------------------------------------------- */
/*--------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õĺ<C3B5><C4BA><EFBFBD>-----------------------------*/
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;
/*<2A><>ȡ<EFBFBD><C8A1>FT<46><54><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD>ʵ<EFBFBD>ʲ<EFBFBD><CAB2><EFBFBD><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD><EFBFBD>ֵ */
extern uint8_t GET_FT_CURRENT(void);
/*<2A><><EFBFBD>β<EFBFBD><CEB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
extern uint32_t StimulatorInit(CHANNEL_NUM CHANNEL_X);
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> / Ƶ<><C6B5>*/
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);
/*<2A><><EFBFBD>̼<EFBFBD>ʱ<EFBFBD><CAB1>*/
extern uint32_t StimuTimeCount_S(CHANNEL_NUM CHANNEL_X , TIME_COUNT_MODE MODE);
/*<2A><><EFBFBD><EFBFBD>ֹͣ*/
void StartStimulatorOut(CHANNEL_NUM CHANNEL_X);
void StopStimulatorOut(CHANNEL_NUM CHANNEL_X);
#endif