HL-PDJ-1/app/Inc/timer.h

118 lines
3.1 KiB
C
Raw Permalink Normal View History

2025-08-19 09:49:41 +08:00
/********************************************************************
Copyright (c) 2021 Xiangyu Medical Co.<EFBFBD><EFBFBD>Ltd. All rights reserved.
FileName : timer.h
Author : zhangdawei
Version : V1.0
Date :
Note :
History :
********************************************************************/
#ifndef TIMER_H__
#define TIMER_H__
/* Includes ------------------------------------------------------*/
#include "app_timer.h"
/* Public define -------------------------------------------------*/
#define RAMP_TIM_TIME ( 1000 )
/* <20><><EFBFBD><EFBFBD><EFBFBD>ƵIJ<C6B5><C4B2><EFBFBD> */
#define M_STEP ( 100 )
/* Ƶ<>ʶ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ */
#define CYCLE_CALUE ( 1000 )
#define SIQU ( 200 )
/* Public typedef ------------------------------------------------*/
/*ͨ<><CDA8>״̬*/
typedef enum
{
IdleState = 0, // <20><><EFBFBD><EFBFBD>̬
StimState, // <20>̼<EFBFBD>̬
StimAdjState // <20>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD>̬
}ChannelState_e;
typedef enum
{
E_RMS_STOP = 0x00,
E_RMS_START = 0x01,
E_RMS_PAUSE = 0x02,
E_RMS_CONTINUE = 0x03,
E_STIM_STOP = 0x04,
E_STIM_START = 0x05,
E_STIM_PAUSE = 0x06,
E_STIM_CONTINUE = 0x07
}E_WORK_STATE;
/* LED״̬ */
typedef enum
{
Disconnect_Highbattery = 0, //δ<><CEB4><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>
Disconnect_Lowbattery, // δ<><CEB4><EFBFBD>ӵ͵<D3B5>
Connect_Lowbattery, // <20><><EFBFBD>ӵ͵<D3B5>
Connect_Highbattery, // <20><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>
Null
}LedModeInfo_e;
/* б<><D0B1>״̬ */
typedef enum
{
RampIdle = 0,
RampUp,
RampDown,
RampSmooth,
RampBreak
}RampState_e;
/* ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */
typedef enum
{
Close,
Open,
Pause,
Continue,
Ready
}ChannelWorkState_e;
/* <20>̼<EFBFBD><CCBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><E1B9B9> */
typedef struct
{
uint16_t usRampUpTime; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> <20><>λΪms
uint16_t usRampDownTime; // <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
uint16_t usSmoothTime; // ƽ<><C6BD>ʱ<EFBFBD><CAB1>
uint16_t usBreakTime; // <20><>Ϣʱ<CFA2><CAB1>
uint16_t usFreqBuf; // Ƶ<><C6B5>
ChannelWorkState_e ChannelWorkState; // ͨ<><CDA8><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>״̬
uint32_t usWidth; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t usCycle; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
RampState_e Ramp_e; // б<><D0B1>״̬
uint8_t ucCurrent; // <20><><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD>ֵ
uint16_t usCcrValue; // <20><><EFBFBD>Ƶ<EFBFBD>CCRֵ
}StimStateInfo_t;
/* Public constants ----------------------------------------------*/
/* Public variables ----------------------------------------------*/
extern StimStateInfo_t ChannelStimStateInfo_t;
extern uint8_t PwmLedInit_Flag;
extern bool LongPressEvent;
extern bool BeepBeepOpenFlag;
/* Public function prototypes ------------------------------------*/
void AppTimersInit(void);
void ApplicationTimersStart(void);
void PwmDACInit(void);
void PwmDACStop(void);
void PwmLedUnInit(void);
void PwmSubtractStop(void);
void GpioteInit(void);
void PPIPwmInit(void);
void SetCurrent(uint16_t CcrIn);
void OutputCurrentCtrl(void);
void BlinkTwice(void);
void pwm0_common_init(void);
void SetPWMValues(uint16_t tempvalue);
void pwm2common_init(void);
void PwmDACPlay(void);
void pwm2_play(void);
void pwm0_play(void);
#endif
/*************************** END OF FILE ***************************/