498 lines
14 KiB
C
498 lines
14 KiB
C
/*
|
||
******************************************************************************
|
||
*
|
||
* @file VOX_Module.h
|
||
* @brief VOL/R module
|
||
* @ic sy8835
|
||
*
|
||
* @version 1.0
|
||
* @date 2024/11/01 09:59:40
|
||
* @author Alex Xu
|
||
*
|
||
* Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd.
|
||
* All Rights Reserved
|
||
*
|
||
* History:
|
||
* Revision Date Author Desc
|
||
* 1.0.0 2024/11/01 Alex build this file
|
||
******************************************************************************
|
||
*/
|
||
#ifndef __VOX_MODULE_H__
|
||
#define __VOX_MODULE_H__
|
||
|
||
/*_____ I N C L U D E S ____________________________________________________*/
|
||
|
||
#include "define.h"
|
||
|
||
/*耳机方案商选择*/
|
||
//#define QIANCHENG //岍丞
|
||
//#define ZHONGKELANXUN //中科蓝讯
|
||
#define XIAOMI //小米
|
||
|
||
/*硬件版本信息*/
|
||
#define HW_VER 0x01 //硬件版本信息,范围0-9
|
||
/*软件版本信息*/
|
||
#define FW_VER 0x001 //程序版本
|
||
|
||
extern bit Vox_Vout_Enable;
|
||
|
||
extern bit Earphone_Chg_Flag; //耳机出入盒标志位
|
||
|
||
extern bit Vox_Output_Short_Flag;
|
||
|
||
#define IVOX_THN 20 //耳机跟随充电流下降阈值
|
||
|
||
#define IVOX_THP 200 //耳机跟随充电流上升阈值
|
||
|
||
|
||
#define VOL_TYPE 0x00
|
||
|
||
#define VOR_TYPE 0x01
|
||
|
||
/*耳机配对状态*/
|
||
typedef enum {
|
||
|
||
VOX_PAIR_NONE = 0, //无效
|
||
|
||
VOX_PAIR_ING, //配对中
|
||
|
||
VOX_PAIR_OK, //配对完成
|
||
|
||
VOX_PAIR_KEEP, //不处理,保持当前状态
|
||
|
||
}e_Vox_Pairing_State;
|
||
|
||
/*耳机配对记录*/
|
||
typedef enum {
|
||
|
||
VOX_PAIRED_NONE = 0, //无配对过
|
||
|
||
VOX_PAIRED_OK, //有配对记录
|
||
|
||
}e_Vox_Paired_State;
|
||
|
||
#if VOX_ENABLE
|
||
|
||
/******************************************************************************\
|
||
Macro definitions
|
||
\******************************************************************************/
|
||
|
||
/*CHIP_STA1<E3h>*/
|
||
#define VOX_Sta_Vol_Output_Short_Pos (0U)
|
||
#define VOX_Sta_Vol_Output_Short_Pos_Msk (0x1UL << VOX_Sta_Vol_Output_Short_Pos)
|
||
#define VOL_Output_Short VOX_Sta_Vol_Output_Short_Pos_Msk
|
||
|
||
#define VOX_Sta_Vor_Output_Short_Pos (1U)
|
||
#define VOX_Sta_Vor_Output_Short_Pos_Msk (0x1UL << VOX_Sta_Vor_Output_Short_Pos)
|
||
#define VOR_Output_Short VOX_Sta_Vor_Output_Short_Pos_Msk
|
||
|
||
#define VOX_Sta_Vol_Ioff_Pos (2U)
|
||
#define VOX_Sta_Vol_Ioff_Pos_Msk (0x1UL << VOX_Sta_Vol_Ioff_Pos)
|
||
#define VOL_Ioff VOX_Sta_Vol_Ioff_Pos_Msk
|
||
|
||
#define VOX_Sta_Vor_Ioff_Pos (3U)
|
||
#define VOX_Sta_Vor_Ioff_Pos_Msk (0x1UL << VOX_Sta_Vor_Ioff_Pos)
|
||
#define VOR_Ioff VOX_Sta_Vor_Ioff_Pos_Msk
|
||
|
||
#define VOX_Sta_Vol_Loadon_Pos (5U)
|
||
#define VOX_Sta_Vol_Loadon_Pos_Msk (0x1UL << VOX_Sta_Vol_Loadon_Pos)
|
||
#define VOL_LoadOn VOX_Sta_Vol_Loadon_Pos_Msk
|
||
|
||
#define VOX_Sta_Vor_Loadon_Pos (7U)
|
||
#define VOX_Sta_Vor_Loadon_Pos_Msk (0x1UL << VOX_Sta_Vor_Loadon_Pos)
|
||
#define VOR_LoadOn VOX_Sta_Vor_Loadon_Pos_Msk
|
||
|
||
/* VOL/R Control Register - VOX_CTL0 <B7h> */
|
||
#define EN_VOL_ADTL_Pos (0U)
|
||
#define EN_VOL_ADTL_Pos_Msk (0x1UL << EN_VOL_ADTL_Pos)
|
||
#define EN_VOL_ADTL EN_VOL_ADTL_Pos_Msk
|
||
|
||
#define EN_VOR_ADTR_Pos (1U)
|
||
#define EN_VOR_ADTR_Pos_Msk (0x1UL << EN_VOR_ADTR_Pos)
|
||
#define EN_VOR_ADTR EN_VOR_ADTR_Pos_Msk
|
||
|
||
#define EN_VOL_PU_Pos (2U)
|
||
#define EN_VOL_PU_Pos_Msk (0x1UL << EN_VOL_PU_Pos)
|
||
#define EN_VOL_PU EN_VOL_PU_Pos_Msk
|
||
|
||
#define EN_VOR_PU_Pos (3U)
|
||
#define EN_VOR_PU_Pos_Msk (0x1UL << EN_VOR_PU_Pos)
|
||
#define EN_VOR_PU EN_VOR_PU_Pos_Msk
|
||
|
||
#define EN_VOL_VOUT_Pos (4U)
|
||
#define EN_VOL_VOUT_Pos_Msk (0x1UL << EN_VOL_VOUT_Pos)
|
||
#define EN_VOL_VOUT EN_VOL_VOUT_Pos_Msk
|
||
|
||
#define EN_VOR_VOUT_Pos (5U)
|
||
#define EN_VOR_VOUT_Pos_Msk (0x1UL << EN_VOR_VOUT_Pos)
|
||
#define EN_VOR_VOUT EN_VOR_VOUT_Pos_Msk
|
||
|
||
#define EN_VOL_VDS_Pos (6U)
|
||
#define EN_VOL_VDS_Pos_Msk (0x1UL << EN_VOL_VDS_Pos)
|
||
#define EN_VOL_VDS EN_VOL_VDS_Pos_Msk
|
||
|
||
#define EN_VOR_VDS_Pos (7U)
|
||
#define EN_VOR_VDS_Pos_Msk (0x1UL << EN_VOR_VDS_Pos)
|
||
#define EN_VOR_VDS EN_VOR_VDS_Pos_Msk
|
||
|
||
/* VOL/R ADT Config Register,VOX_CON0<6Ah> */
|
||
#define Vox_Pull_Up_Pos (7U)
|
||
#define Vox_Pull_Up_Pos_Msk (0x1UL << Vox_Pull_Up_Pos)
|
||
#define Vox_Pull_Up Vox_Pull_Up_Pos_Msk
|
||
|
||
#define Vox_Pull_Up_Deb_Pos (6U)
|
||
|
||
#define Vox_Pull_Up_Deb_8Ms_Pos_Msk 0
|
||
#define Vox_Pull_Up_Deb_16Ms_Pos_Msk 1
|
||
|
||
#define Vox_Pull_Up_Deb_8Ms (Vox_Pull_Up_Deb_8Ms_Pos_Msk << Vox_Pull_Up_Deb_Pos)
|
||
#define Vox_Pull_Up_Deb_16Ms (Vox_Pull_Up_Deb_16Ms_Pos_Msk << Vox_Pull_Up_Deb_Pos)
|
||
|
||
#define Vor_Pull_Down_Pos (5U)
|
||
#define Vor_Pull_Down_Pos_Msk (0x1UL << Vor_Pull_Down_Pos)
|
||
#define Vor_Pull_Down Vor_Pull_Down_Pos_Msk
|
||
|
||
#define Vol_Pull_Down_Pos (4U)
|
||
#define Vol_Pull_Down_Pos_Msk (0x1UL << Vol_Pull_Down_Pos)
|
||
#define Vol_Pull_Down Vol_Pull_Down_Pos_Msk
|
||
|
||
/*自动识别负载电流阈值。*/
|
||
#define VOX_ADT_Cur_0_5UA (0x0UL)
|
||
#define VOX_ADT_Cur_1_5UA (0x1UL)
|
||
#define VOX_ADT_Cur_2_5UA (0x2UL)
|
||
#define VOX_ADT_Cur_3_5UA (0x3UL)
|
||
#define VOX_ADT_Cur_4_5UA (0x4UL)
|
||
#define VOX_ADT_Cur_5_5UA (0x5UL)
|
||
#define VOX_ADT_Cur_6_5UA (0x6UL)
|
||
#define VOX_ADT_Cur_7_5UA (0x7UL)
|
||
|
||
/*
|
||
VOX过流档位设置,在系统初始化中(Vox_init())通过配置VOX_CON0,
|
||
|
||
SFRADDR = VOX_CON0; //设置VOX输出200mA,负载识别电流2.5uA。
|
||
SFRDATA |= VOX_ADT_Cur_2_5UA;
|
||
//Vox轻重载滤波时间配置
|
||
SFRADDR = VOX_CON2;
|
||
SFRDATA |= (VOX_LIGHT_TO_HAVEY_128 << 2) | VOX_HAVEY_TO_LIGHT_8;
|
||
|
||
*/
|
||
/* VOL/R Misc Config Register,VOX_CON2<6Ch> */
|
||
#define Vox_Ioff_2mA (0x0UL)
|
||
#define Vox_Ioff_3mA (0x1UL)
|
||
#define Vox_Ioff_4mA (0x2UL)
|
||
#define Vox_Ioff_5mA (0x3UL)
|
||
|
||
/*轻载转重载滤波时间配置。*/
|
||
#define VOX_LIGHT_TO_HAVEY_1 (0x0UL)
|
||
#define VOX_LIGHT_TO_HAVEY_8 (0x1UL)
|
||
#define VOX_LIGHT_TO_HAVEY_128 (0x2UL)
|
||
#define VOX_LIGHT_TO_HAVEY_256 (0x3UL)
|
||
/*重载转轻载滤波时间配置。*/
|
||
#define VOX_HAVEY_TO_LIGHT_0_125 (0x0UL)
|
||
#define VOX_HAVEY_TO_LIGHT_1 (0x1UL)
|
||
#define VOX_HAVEY_TO_LIGHT_8 (0x2UL)
|
||
#define VOX_HAVEY_TO_LIGHT_64 (0x3UL)
|
||
|
||
/* VOL/R Comm Control Register,COMM_CTL<BDh> */
|
||
#define Vor_EN_COMR_Pos (7U)
|
||
#define Vor_EN_COMR_Pos_Msk (0x1UL << Vor_EN_COMR_Pos)
|
||
#define Vor_EN_COMR Vor_EN_COMR_Pos_Msk
|
||
|
||
#define Vor_SW_MD_Pos (6U)
|
||
#define Vor_SW_MD_Pos_Msk (0x1UL << Vor_SW_MD_Pos)
|
||
#define Vor_SW_MD Vor_SW_MD_Pos_Msk
|
||
|
||
#define Vor_SWDT_Pos (5U)
|
||
#define Vor_SWDT_Pos_Msk (0x1UL << Vor_SWDT_Pos)
|
||
#define Vor_SWDT Vor_SWDT_Pos_Msk
|
||
|
||
#define Vor_SWDR_Pos (4U)
|
||
#define Vor_SWDR_Pos_Msk (0x1UL << Vor_SWDR_Pos)
|
||
#define Vor_SWDR Vor_SWDR_Pos_Msk
|
||
|
||
#define Vol_EN_COMR_Pos (3U)
|
||
#define Vol_EN_COMR_Pos_Msk (0x1UL << Vol_EN_COMR_Pos)
|
||
#define Vol_EN_COMR Vol_EN_COMR_Pos_Msk
|
||
|
||
#define Vol_SW_MD_Pos (2U)
|
||
#define Vol_SW_MD_Pos_Msk (0x1UL << Vol_SW_MD_Pos)
|
||
#define Vol_SW_MD Vol_SW_MD_Pos_Msk
|
||
|
||
#define Vol_SWDT_Pos (1U)
|
||
#define Vol_SWDT_Pos_Msk (0x1UL << Vol_SWDT_Pos)
|
||
#define Vol_SWDT Vol_SWDT_Pos_Msk
|
||
|
||
#define Vol_SWDR_Pos (0U)
|
||
#define Vol_SWDR_Pos_Msk (0x1UL << Vol_SWDR_Pos)
|
||
#define Vol_SWDR Vol_SWDR_Pos_Msk
|
||
|
||
/* VOL/R Comm TRx Data Register,COMM_DAT<BEh> */
|
||
#define Vor_COMR_RX_Pos (5U)
|
||
#define Vor_COMR_RX_Pos_Msk (0x1UL << Vor_COMR_RX_Pos)
|
||
#define Vor_COMR_RX Vor_COMR_RX_Pos_Msk
|
||
|
||
#define Vol_COML_RX_Pos (4U)
|
||
#define Vol_COML_RX_Pos_Msk (0x1UL << Vol_COML_RX_Pos)
|
||
#define Vol_COML_RX Vol_COML_RX_Pos_Msk
|
||
|
||
#define Vor_COMR_DT_Pos (1U)
|
||
#define Vor_COMR_DT_Pos_Msk (0x1UL << Vor_COMR_DT_Pos)
|
||
#define Vor_COMR_DT Vor_COMR_DT_Pos_Msk
|
||
|
||
#define Vol_COML_DT_Pos (0U)
|
||
#define Vol_COML_DT_Pos_Msk (0x1UL << Vol_COML_DT_Pos)
|
||
#define Vol_COML_DT Vol_COML_DT_Pos_Msk
|
||
|
||
/* VOL/R Comm Config Register,COMM_CON<6Fh> */
|
||
#define Vox_COMM_PULL_Vol_Pos (2U)
|
||
|
||
#define Vox_COMM_PULL_Vol_1_8_Pos_Msk (0x00UL)
|
||
#define Vox_COMM_PULL_Vol_2_5_Pos_Msk (0x01UL)
|
||
#define Vox_COMM_PULL_Vol_3_0_Pos_Msk (0x02UL)
|
||
#define Vox_COMM_PULL_Vol_5_0_Pos_Msk (0x03UL)
|
||
|
||
#define Vox_COMM_PULL_Vol_1_8 (Vox_COMM_PULL_Vol_1_8_Pos_Msk << Vox_COMM_PULL_Vol_Pos)
|
||
#define Vox_COMM_PULL_Vol_2_5 (Vox_COMM_PULL_Vol_2_5_Pos_Msk << Vox_COMM_PULL_Vol_Pos)
|
||
#define Vox_COMM_PULL_Vol_3_0 (Vox_COMM_PULL_Vol_3_0_Pos_Msk << Vox_COMM_PULL_Vol_Pos)
|
||
#define Vox_COMM_PULL_Vol_5_0 (Vox_COMM_PULL_Vol_5_0_Pos_Msk << Vox_COMM_PULL_Vol_Pos)
|
||
|
||
#define Vox_Pull_Up_50k_Pos (0U)
|
||
#define Vox_Pull_Up_50k_Pos_Msk (0x1UL << Vox_Pull_Up_50k_Pos)
|
||
#define Vox_Pull_Up_50k Vox_Pull_Up_50k_Pos_Msk
|
||
|
||
#define BOXHEADER 0x55AA //VOX通讯数据包头
|
||
|
||
#define EARPHONE_HEADER_HIGH 0x55
|
||
#define EARPHONE_HEADER_LOW 0xAA
|
||
|
||
#define BOXIDCODE 0xFF //VOX通讯耳机->仓数据包头
|
||
|
||
#define Vox_TX_Interval 2 //Vox定时发送指令时间间隔
|
||
|
||
#define Vox_TX_Interval_2 4
|
||
|
||
#define TIM_SHUTDOWN_DEBOUNCE 600 //关机前debounce时间
|
||
|
||
/******************************************************************************\
|
||
Variables definitions
|
||
\******************************************************************************/
|
||
|
||
/*耳机通道选择*/
|
||
|
||
#define TWS_VOL 0x04
|
||
#define TWS_VOR 0x05
|
||
#define TWS_BOX 0x02
|
||
#define TWS_PC 0x03
|
||
|
||
#if JIELI
|
||
|
||
/*耳机通道选择*/
|
||
typedef enum {
|
||
|
||
VOL_CHAN = 0x00,
|
||
|
||
VOR_CHAN = 0x01,
|
||
|
||
VOX_MAX_CHAN = 0x02,
|
||
|
||
VOX_BOTH = 0xFF,
|
||
|
||
}e_Vox_Chan;
|
||
|
||
/*耳机和充电仓进行双向通讯的协议命令ID。*/
|
||
typedef enum _VOX_BES_COMMAND_E
|
||
{
|
||
|
||
VHOUSE_CMD_PAIR = 0x01, //充电仓发起的配对信息
|
||
|
||
VHOUSE_CMD_EXCH_TWS_BTADDR = 0x02, //交换对耳的蓝牙地址信息。
|
||
|
||
VHOUSE_CMD_CLEAR_PAIR = 0x03, //清配对信息
|
||
|
||
VHOUSE_CMD_OPEN_BOX = 0x06, //开盖获取电量包
|
||
|
||
VHOUSE_CMD_CLOSE_WIN_GET_VBAT = 0x07, //关盖获取电量包
|
||
|
||
VHOUSE_CMD_RST = 0x08, //
|
||
|
||
VHOUSE_CMD_PWROFF = 0x80, //关机消息
|
||
|
||
VHOUSE_CMD_CLOSE_BOX = 0x81,
|
||
|
||
BES_RESET = 0xE1,
|
||
|
||
}VOX_BES_COMMAND_E;
|
||
|
||
#elif ZHONGKE
|
||
|
||
/*耳机通道选择*/
|
||
typedef enum {
|
||
|
||
VOL_CHAN = 0x11,
|
||
|
||
VOR_CHAN = 0x22,
|
||
|
||
VOX_MAX_CHAN = 0x02,
|
||
|
||
VOX_BOTH = 0xff,
|
||
|
||
}e_Vox_Chan;
|
||
|
||
/*耳机和充电仓进行双向通讯的协议命令ID。*/
|
||
typedef enum _VOX_BES_COMMAND_E
|
||
{
|
||
VHOUSE_CMD_GET_VBAT = 0x01, //获取电池电量,也可作为开始标志
|
||
|
||
VHOUSE_CMD_PAIR, //充电仓发起的配对信息
|
||
|
||
VHOUSE_CMD_GET_TWS_BTADDR, //获取对耳的蓝牙地址信息,充电仓无需使用本命令,本命令为对耳相互转发,充电仓只作转发缓存,收到该命令后,copy给另一只对耳即可。
|
||
|
||
VHOUSE_CMD_CLEAR_PAIR, //清除配对信息
|
||
|
||
VHOUSE_CMD_PWROFF, //关机消息
|
||
|
||
VHOUSE_CMD_ERR, //接收消息错误
|
||
|
||
VHOUSE_CMD_SUCCESS, //成功响应
|
||
|
||
VHOUSE_CMD_CLOSE_WINDOW, //关盖
|
||
|
||
VHOUSE_CMD_OPEN_WINDOW, //开盖
|
||
|
||
VHOUSE_CMD_CLOSE_WIN_GET_VBAT, //关盖获取电量包
|
||
|
||
VHOUSE_CMD_ENABLE_POPUP = 0x80, //开关弹窗功能控制
|
||
|
||
VHOUSE_CMD_CUSTOM_RESV1 = 0xE0, //客户保留指令
|
||
|
||
BES_RESET = 0xE1,
|
||
|
||
VHOUSE_CMD_CUSTOM_RESV_END = 0xEF,
|
||
|
||
VHOUSE_CMD_SYS_RST = 0xFF, //系统复位指令
|
||
|
||
}VOX_BES_COMMAND_E;
|
||
|
||
|
||
#endif
|
||
|
||
/* Vox Channel Select. */
|
||
typedef enum {
|
||
|
||
VOL_CHAN_SET = 0x00,
|
||
|
||
VOR_CHAN_SET = 0x01,
|
||
|
||
VOX_BOTH_SET = 0x02,
|
||
|
||
}e_Vox_Chan_Set;
|
||
|
||
/* Vox Follow Charge State. */
|
||
typedef enum {
|
||
|
||
Vox_Follow_Chg_InitSta = 0x00,
|
||
|
||
Vox_Follow_Chg_Sta1,
|
||
|
||
Vox_Follow_Chg_Sta2,
|
||
|
||
Vox_Follow_Chg_Sta3,
|
||
|
||
Vox_Follow_Chg_Sta4,
|
||
|
||
}e_Vox_Follow_Chg_Sta;
|
||
|
||
/* VOX Enable Type */
|
||
typedef enum {
|
||
|
||
VOX_TRANS_Mode = 0x00, //VOx UART 透传功能使能
|
||
|
||
VOX_COMM_Mode_Uart, //VOx 通讯 UART Mode
|
||
|
||
VOX_COMM_Mode_Reg, //VOx 通讯 Register Mode
|
||
|
||
VOX_VOUT_Mode, //VOx 5V 输出使能
|
||
|
||
VOX_ADT_Mode, //VOx 负载接入、存在识别功能使能,负载自动识别
|
||
|
||
VOX_PUnK_Mode, //Vox上拉电阻配置,上拉到VOX_Vup。
|
||
|
||
VOX_PD1K_Mode, //<SHIP_CTL[VOX_PD1K 5:4]> VOX 1K 电阻下拉使能 1: VOR 通过 1K 电阻下拉至 gnd
|
||
|
||
} VOX_Enable_Mode_e;
|
||
|
||
extern bit Cover_Open_Flag;
|
||
|
||
extern bit Vox_Ocp_Flag;
|
||
extern bit Boost_Open_Flag;
|
||
|
||
extern bit OpenCover_TX_Cmd_Flag;
|
||
|
||
#ifdef VOX_RX
|
||
|
||
extern xdata uint8_t Vox_Get_Vbat_Flag[2]; //耳机配对状态,VOL:低4bit;VOR:高4bit。0是无效,1是正在配对,2是配对成功,3不处理,保持当前状态。
|
||
|
||
extern xdata uint8_t Vox_Get_BES_Addr_Flag[2] ;
|
||
|
||
#endif
|
||
|
||
#if VOX_FOLLOW_CHG
|
||
|
||
typedef struct {
|
||
|
||
uint16_t IVox_Init[VOX_MAX_CHAN]; //跟随充Vox初始化电流值。
|
||
|
||
uint16_t IVox_Threshold_Neg[VOX_MAX_CHAN]; //Vox电流下降阈值
|
||
|
||
uint16_t IVox_Threshold_Pos[VOX_MAX_CHAN]; //Vox电流上升阈值
|
||
|
||
uint16_t IVox_At_Present[VOX_MAX_CHAN]; //Vox当前电流
|
||
|
||
uint8_t IVox_TC_Mode[VOX_MAX_CHAN]; //Vox CV_TC充电电流阈值
|
||
|
||
uint8_t Vpmid_SubSta[VOX_MAX_CHAN]; //Vox的Vpmid电压下降标志
|
||
|
||
uint8_t Vpmid_SubSta_Flag; //Vpmid电压下降标志
|
||
|
||
uint8_t Vpmid_AddSta[VOX_MAX_CHAN]; //Vpmid电压上升标志
|
||
|
||
uint8_t Vox_InBox_Sta[VOX_MAX_CHAN]; //耳机在盒标志
|
||
|
||
uint8_t Vpmid_Threshold_Neg; //Vpmid电压下降阈值
|
||
|
||
uint8_t Vpmid_Threshold_At_Present; //Vpmid电压当前值
|
||
|
||
uint8_t Vpmid_Threshold_Pos; //Vpmid电压上升阈值
|
||
|
||
uint8_t Vox_PTM_Type; //Boost 直通模式使能状态位,ON:Enable;OFF:Disable。
|
||
|
||
uint8_t Vox_Follow_Start; //跟随充启动标志
|
||
|
||
uint8_t Vox_Follow_Stop; //跟随充结束标志
|
||
|
||
} g_Vox_Fllow_Chg_Cfg;
|
||
|
||
extern g_Vox_Fllow_Chg_Cfg xdata Vox_Fllow_Chg;
|
||
|
||
#endif
|
||
/******************************************************************************\
|
||
UserCfg.Functions definitions
|
||
\******************************************************************************/
|
||
|
||
extern void HandleTxCommand(VOX_BES_COMMAND_E TxCommand, e_Vox_Chan nVox_Chn_Select);
|
||
|
||
extern void Vox_Det_Machine(void);
|
||
#if VOX_FOLLOW_CHG
|
||
extern void Vox_Follow_Chg( g_Vox_Fllow_Chg_Cfg *n_Vox_Fllow_Chg );
|
||
#endif
|
||
extern void VOX_EN_Type(VOX_Enable_Mode_e VOX_Enable_Mode);
|
||
|
||
#ifdef VOX_RX
|
||
extern void HandleVoxCommMsg(void);
|
||
#endif
|
||
|
||
#endif
|
||
|
||
#endif
|
||
|