98 lines
2.7 KiB
C
98 lines
2.7 KiB
C
|
|
/*
|
|||
|
|
*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
|