HL-PDJ-1/app/Inc/timer.h
xiaozhengsheng 6df0f7d96e 初始版本
2025-08-19 09:49:41 +08:00

118 lines
3.1 KiB
C
Raw 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 (c) 2021 Xiangyu Medical Co.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 )
/* 呼吸灯的步长 */
#define M_STEP ( 100 )
/* 频率对应的周期值 */
#define CYCLE_CALUE ( 1000 )
#define SIQU ( 200 )
/* Public typedef ------------------------------------------------*/
/*通道状态*/
typedef enum
{
IdleState = 0, // 空闲态
StimState, // 刺激态
StimAdjState // 刺激调节态
}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, //未连接有电
Disconnect_Lowbattery, // 未连接低电
Connect_Lowbattery, // 连接低电
Connect_Highbattery, // 连接有电
Null
}LedModeInfo_e;
/* 斜坡状态 */
typedef enum
{
RampIdle = 0,
RampUp,
RampDown,
RampSmooth,
RampBreak
}RampState_e;
/* 通道工作状态 */
typedef enum
{
Close,
Open,
Pause,
Continue,
Ready
}ChannelWorkState_e;
/* 刺激参数信息结构体 */
typedef struct
{
uint16_t usRampUpTime; // 上坡时间 单位为ms
uint16_t usRampDownTime; // 下坡时间
uint16_t usSmoothTime; // 平坡时间
uint16_t usBreakTime; // 休息时间
uint16_t usFreqBuf; // 频率
ChannelWorkState_e ChannelWorkState; // 通道当前工作状态
uint32_t usWidth; // 脉冲宽度
uint32_t usCycle; // 脉冲周期
RampState_e Ramp_e; // 斜坡状态
uint8_t ucCurrent; // 标称电流值
uint16_t usCcrValue; // 标称的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 ***************************/