📄 audet_m04_c2.c
字号:
/****************************************************************************************************/
/* $Header :
/* AUTHOR :
/* FILE NAME: AUDET_M04_C2.C
/* PURPOSE : AUDIO DETECTION CONTROL
/* MODEL : 2004 CIS 2-CH AMP
/* Copyright (c) 2003 Sony Corporation All Rights Reserved
/****************************************************************************************************/
#define _AUDET_C
#include "_main_M04_C2.h"
/****************************************************************************************************/
/* FUNCTION : AuDeTInitialize
/* PURPOSE : Audio Detection Initialize
/* INPUT : None
/* RETURN VALUE : None
/****************************************************************************************************/
void AuDetInitialize(void)
{
AU_DET.AuSense = CLEAR;
AU_DET.AuSenFirst = SET;
AU_DET.IRInput.flag = CLEAR;
AU_DET._12VTrg = CLEAR;
AU_DET.FirstOn = SET;
AuSenseCntOff = CLEAR;
AuSenseCntOn = CLEAR;
_12TrigCntOff = CLEAR;
_12TrigCntOn = CLEAR;
return;
}
/****************************************************************************************************/
/* FUNCTION : Audio Detection Control
/* PURPOSE : Audio Detection control
/* INPUT : None
/* RETURN VALUE : None
/****************************************************************************************************/
#define _ChatTime 3
void AuDetControl(void)
{
if (Is10msAInterval()) {
if(PowWork.Prtc==ON){
return;
}else if(Bak.Buzy){ /* c/m for 1st time power on(eeprom blank) eeprom backup power off */
return;
}
AU_DET.AuSense = CLEAR;
AU_DET.IRInput.flag = CLEAR;
AU_DET._12VTrg = CLEAR;
/*** Detect mode info Get ***/
if (P_SEL_AUDIO_SENSE == SET){
AU_DET.AuSense = SET;
}else if (P_SEL_IR_IN == SET){
AU_DET.IRInput.flag = SET;
}else if (P_SEL_12V_TRIG == SET){
AU_DET._12VTrg = SET;
}
if (AU_DET.IRInput.flag == SET){
AU_DET.FirstOn = CLEAR;
AU_DET.AuSenFirst = SET;
if(Power.Flag.PowOnSel != Power.Flag.PowOn){
EventExecute(EV_IRINPUTPOWER, TRUE);
}
}else if (AU_DET.AuSense == SET){
AU_DET.FirstOn = CLEAR;
if ((Power.Flag.PowOn == ON) && (P_AU_SENSEOFF == ON)){
if (AU_DET.AuSenFirst == ON){ /* Power OFF when 1st time ON */
AU_DET.AuSenFirst = CLEAR;
AuSenseCntOff = CLEAR;
EventExecute(EV_POWEROFF, TRUE);
}else{
if (Timer.A1Sec) {
if (++AuSenseCntOff == _3min){ /* Power OFF if no audio signal detected for 3 minutes */
AuSenseCntOff = CLEAR;
EventExecute(EV_POWEROFF, TRUE);
}
}
}
} else {
AU_DET.AuSenFirst = CLEAR;
AuSenseCntOff = CLEAR;
if ((Power.Flag.PowOn == OFF)&& (P_AU_SENSEOFF == OFF)){/* Got Audio signal? */
if (++AuSenseCntOn == _ChatTime){ /* Power ON after 3 times chattering */
AuSenseCntOn = CLEAR;
EventExecute(EV_POWERON, TRUE);
}
} else {
AuSenseCntOn = CLEAR;
}
}
} else if (AU_DET._12VTrg == SET){
AU_DET.AuSenFirst = SET;
if ((Power.Flag.PowOn == ON) && (P_12V_TRIG_IN == HIGH)){
if (AU_DET.FirstOn == ON){ /* Power OFF when 1st time ON */
AU_DET.FirstOn = CLEAR;
_12TrigCntOff = CLEAR;
EventExecute(EV_POWEROFF, TRUE);
}else{
if (++_12TrigCntOff == _ChatTime){ /* Power OFF after 3 times chattering */
_12TrigCntOff = CLEAR;
EventExecute(EV_POWEROFF, TRUE);
}
}
} else {
AU_DET.FirstOn = CLEAR;
_12TrigCntOff = CLEAR;
if ((Power.Flag.PowOn == OFF)&& (P_12V_TRIG_IN == LOW)){/* Got 12V Trigger? */
if (++_12TrigCntOn == _ChatTime){ /* Power ON after 3 times chattering */
_12TrigCntOn = CLEAR;
EventExecute(EV_POWERON, TRUE);
}
} else {
_12TrigCntOn = CLEAR;
}
}
}
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -