📄 wnt10.c
字号:
if( ExPwrCurrSTA == 0 ) // External Power On.
{
SW4 = ~MP0PwrOn; // Refresh OT160 Charging Control I/O.
SW5 = ~MP1PwrOn; // Refresh OT190 Charging Control I/O.
SW6 = ~MP2PwrOn; // Refresh CDMA Charging Control I/O.
BattCurrSTA = 0; // Battary Normal.
if( AlmStaVld == 1 )
ExPwrOnTimCNT++;
if( ExPwrOnTimCNT >= 30 )
{
SW7 = 1; // Battary Charge Enabled,Begin of Charging...
BattChgSTA = 1; // Battary Charging Now.
ExPwrOnTimCNT = 0;
ExPwrNrlVldCNT = 0;
ExPwrAlmVldCNT = 0;
ExPwrOffAlm = 0; //
AlmDATA[6] = MCU_ALARM; // ExPwr Off Alarm.
AlmDATA[6] = AlmDATA[6] & 0x07;
AlmDatReady = 1; // Alarm Frame Ready Flag.
AlmStaVld = 0;
ExPwrOffAlmEvt = 0; // RST Alarm Event Flag.
}
if( BattSamEvt == 1 )
{
if( BattVolt > BATT_MAX ) // Process Battary Charge DATA.
{
BattChgSTA = 0; // Battary Charge Over.
PwrLedOn = 255;
PwrLedOff = 255;
}
if( BattVolt < BATT_MID ) //
BattChgSTA = 1; // Battary Need Charge.
if( BattVolt < BATT_ERR ) // *******************
BattChgSTA = 0; // Battary Charge Circuit Error.
BattSamEvt = 0; //
}
}
else // External Power Off.
{
SW4 = 1; // OT160 Charging Disabled(MTD2955).
SW5 = 1; // OT190 Charging Disabled(MTD2955).
SW6 = 1; // CDMA Charging Disabled(MTD2955).
SW7 = 0; // STOP Charging.
PwrLedOn = 1;
if( SysStandby == 0 )
PwrLedOff = 2;
else
PwrLedOff = 6;
BattChgSTA = 0; // Non-Charging.
ExPwrOnTimCNT = 0;
if( BattSamEvt == 1 )
{
if( BattVolt < BATT_MIN ) //
BattCurrSTA = 1; // Battary Low Voltage.
BattSamEvt = 0;
}
}
if( BattChgSTA == 1 ) // Battary Need Charging.
{
PwrLedOn = 5;
PwrLedOff = 10;
if( ( SecCNT % BATT_CHG_IVL ) == 0 )
SW7 = ~SW7; // STOP Backup Battary Charge / BatChgIVL S.
}
/**************************************************************
*** External Power STATUS Changed ***
**************************************************************/
if( ExPwrCurrSTA != ExPwrLastSTA ) // ExPwrSTATUS Changed ?
{
ExPwrStaChg = 1; // ExPwrSTATUS Changed.
if( ExPwrCurrSTA == 0 ) // External Power On (Off To On).
ExPwrNrlVldCNT++; // Normal Valid Counter Increase 1.
else // External Power Off (On To Off).
ExPwrAlmVldCNT++; // Alarm Valid Counter Increase 1.
}
else // ExPwrSTATUS Not Changed.
{
ExPwrAlmVldCNT = 0; // RST ExPwr Alarm Valid Counter.
ExPwrNrlVldCNT = 0; // RST ExPwr Normal Valid Counter.
}
/**************************************************************
*** Backup Battary STATUS Changed ***
**************************************************************/
if( BattCurrSTA != BattLastSTA ) // Battary STSTUS Changed ?
{
BattStaChg = 1; // Battary STSTUS Changed.
if( BattCurrSTA == 0 ) // Battary High (Low To High).
BattNrlVldCNT++; // Normal Valid Counter Increase 1.
else // Battary Low (High To Low).
BattAlmVldCNT++; // Alarm Valid Counter Increase 1.
}
else // Battary STSTUS Not Changed.
{
BattAlmVldCNT = 0; // RST Battary Alarm Valid Counter.
BattNrlVldCNT = 0; // RST Battary Normal Valid Counter.
}
/**************************************************************
*** Temperature FAN & Alarm ***
**************************************************************/
if( TempSamEvt == 1 )
{
if( SysTemp > TEMP_MAX )
TempCurrSTA = 1; // Temp OverHigh.
else if( SysTemp < TEMP_MIN )
TempCurrSTA = 1; // Temp OverLow.
else
TempCurrSTA = 0; // Temp Normal.
if( SysTemp >= TEMP_FAN_OPEN ) // Enable FANS ?
SW8 = 0; // Enable Fans' Power(MTD2955).
if( SysTemp < TEMP_FAN_STOP ) // Disable FANS ?
SW8 = 1; // Disable Fans' Power(MTD2955).
TempSamEvt = 0;
}
if( TempCurrSTA != TempLastSTA ) // Temp STATUS Changed ?
{
TempStaChg = 1; // Temp STATUS Changed.
if( TempCurrSTA == 0 ) // Temp Normal (Over To Normal).
TempNrlVldCNT++; // Temp Normal Valid Counting.
else // Temp Alarm (Normal To Over).
TempAlmVldCNT++; // Temp Alarm Valid Counting..
}
else // Temp STATUS Not Changed.
{
TempAlmVldCNT = 0; // RST Temp Alarm Valid Counter.
TempNrlVldCNT = 0; // RST Temp Normal Valid Counter.
}
/**************************************************************
*** ADC0 Idle & System Normal Operating ***
**************************************************************/
ucTMP = MCU_STATUS & 0x07;
if( ( SysStandby == 0 ) && ( ucTMP == 0 ) )
{ // Normal Operating & ADC0 Idle.
/******************************************
*** (0)Measure Backup Battary Voltage ***
******************************************/
if( SW7 == 0 ) // Measure Battary Voltage when Non-Charging.
{
ADC0_CH_Setting(0x04); // Battary Charge(CH4) ADC Begin.
AD0INT = 0; //
AD0BUSY = 1; // Start ADC0
while( AD0INT == 0 ); // Wait for Convert Over
BattVolt = ADC0H; // Backup Battary Voltage.
if( BattSamEvt == 0 )
BattSamEvt = 1; // Set Battary Voltage Sampling Over Flag.
}
/******************************************
*** (1)Measure System Temperature ***
******************************************/
ADC0_CH_Setting(0x0f); // Temperature(CH9) ADC Begin.
AD0INT = 0; //
AD0BUSY = 1; // Start ADC0.
while( AD0INT == 0 ); // Wait for Convert Over.
AdcDatBuff.ucVAR[0] = ADC0H; // Temperature High Byte.
AdcDatBuff.ucVAR[1] = ADC0L; // Temperature Low Byte.
AdcDatBuff.uiVAR = AdcDatBuff.uiVAR >> 6; // Left Justified 12-Bit Trans into 10-Bit.
SysTemp = AdcDatBuff.uiVAR - TEMP_REF; // Temp = uiTMP/1.21 + 50 - Tmcu;
if( TempSamEvt == 0 )
TempSamEvt = 1; // Set Temperature Sampling Over Flag.
/******************************************
*** (2)Measure External Power Voltage ***
******************************************/
ADC0_CH_Setting(0x03); // External Power Voltage(CH3) ADC Begin.
AD0INT = 0; //
AD0BUSY = 1; // Start ADC0
while( AD0INT == 0 ); // Wait for Convert Over
ExPwrVolt = ADC0H; // External Power Voltage.
}
if( CurrTxVocChNum <= 2 ) // Current UpLoad: CHn ( n = 0/1/2 ).
VocChnDatTxTimCNT++; // Voice Record DATA UpLoad Time Counting.
else
VocChnDatTxTimCNT = 0;
/**************************************************************
*** MCU STATUS CHANGED FRAME : No3 ***
**************************************************************/
if( MCU_STATUS != MCULastSTA )
{
if( StaDatReady == 0 )
{
StaDATA[6] = MCU_STATUS;
MCULastSTA = MCU_STATUS; // Refresh MCU STATUS Record.
StaDatReady = 1;
}
}
if( RecChnTxDly == 1 )
RecChnTxDlyCNT++;
SecFlag = 0; // RST Second TimOut flag.
}
/**************************************************************
*** MINUTE FLAG VALID ***
**************************************************************/
if( MinFlag ) // Minute TimOut flag Valid.
{
MinCNT++;
SysDATA[6] = SysTemp; // .
SysDATA[7] = ExPwrVolt; // .
SysDATA[8] = BattVolt; // .
SysDATA[9] = MCU_Ex386_STATUS & 0x1f; // .
SysDATA[10] = McuTxCNT; // MCU TX Frame Counting.
SysDATA[11] = RxAckCNT; // 386Ex ACK Counting.
SysDATA[12] = 0; // Voice CH0 Record Counting.
SysDATA[13] = 0; // Voice CH1 Record Counting.
SysDATA[14] = 0; // Voice CH2 Record Counting.
SysDatReady = 1; // System Status Data Frame Ready To Send.
ucTMP = McuTxCNT - RxAckCNT;
ucTMP = 1; // ?????????????????????????.
if( ucTMP > 5 )
{
SysStandby = 1; //
Ex386RST = 1; //
nRST386 = 0; // Reset the Ex386.
DmS(10); // delay 10mS.
nRST386 = 1; // 386Ex Normal Operation.
D1S(250);
}
McuTxCNT = 0; // MCU TX Frame Counting every minute.
RxAckCNT = 0; // 386Ex Ack Counting every minute.
/**************************************************************
*** HOUR FLAG VALID ***
**************************************************************/
if( MinCNT >= 60 )
{
SysDATA[12] = VocCh0RecTimCNT; // Voice CH0 Record Counting.
SysDATA[13] = VocCh1RecTimCNT; // Voice CH1 Record Counting.
SysDATA[14] = VocCh2RecTimCNT; // Voice CH2 Record Counting.
VocCh0RecTimCNT = 0; // Voice Record 0 Counting every hour.
VocCh1RecTimCNT = 0; // Voice Record 1 Counting every hour.
VocCh2RecTimCNT = 0; // Voice Record 2 Counting every hour.
}
MinFlag = 0; // RST Minute TimOut flag.
}
/**************************************************************
*** External Power On/Off ***
**************************************************************/
if( ExPwrStaChg ) // ExPwr STATUS Changed.
{
if( ExPwrCurrSTA == 0 ) // External Power On (Off To On).
{
if( ExPwrNrlVldCNT >= ExPwrNrlVldTim )
{ // External Power On Valid.
ExPwrLastSTA = ExPwrCurrSTA; // Save Current ExPwr STATUS.
ExPwrNrlVldCNT = 0; // RST ExPwr Normal Valid Counter.
PwrCtrl(1); // To Power On Ex386.
PwrLedOn = 255;
PwrLedOff = 255;
SysStandby = 0; // System Normal Operating.
}
}
else // External Power Off (On To Off).
{
PwrLedOn = 1;
PwrLedOff = 2;
if( ExPwrOffAlmEvt == 0 )
{
if( ExPwrAlmVldCNT >= ExPwrAlmVldTim )
{ // ExPwr Off Alarm Valid.
ExPwrOffAlm = 1; //
AlmDATA[6] = MCU_ALARM; // ExPwr Off Alarm.
AlmDATA[6] = AlmDATA[6] & 0x07;
AlmDatReady = 1; // Alarm Frame Ready Flag.
ExPwrOffAlmEvt = 1; // Alarm Done.
AlmStaVld = 1; // Alarm STATUS.
}
}
if( ExPwrAlmVldCNT >= ExPwrOffShutDown )
{ // ExPwrOff PwrOff: 15min.
// BattLastSTA = BattCurrSTA; // Save Current Battary STATUS.
BattAlmVldCNT = 0; // RST Battary Alarm Valid Counter.
LowBattAlmEvt = 0; // RST LowBatt Alarm Event Flag.
ExPwrLastSTA = ExPwrCurrSTA; // Save Current ExPwr STATUS.
ExPwrAlmVldCNT = 0; // RST ExPwrChg Counter.
ExPwrOffAlmEvt = 0; //
// TempLastSTA = TempCurrSTA; // Save Current Temp STATUS.
TempAlmVldCNT = 0; // RST OverTemp Alarm Valid Counter.
OverTempAlmEvt = 0; // RST Temp Alarm Event Flag.
ExPwrChgCNT = 0; // RST Power Change Status Counter.
BattAlmVldCNT = 0; // RST Battary Alarm Valid Counter.
BattNrlVldCNT = 0; // RST Battary Normal Valid Counter.
TempAlmVldCNT = 0; // RST Temp Alarm Valid Counter.
TempNrlVldCNT = 0; // RST Temp Normal Valid Counter.
ExPwrAlmVldCNT = 0; // RST ExPwr Alarm Valid Counter.
ExPwrNrlVldCNT = 0; // RST ExPwr Normal Valid Counter.
Ex386PwrDwn = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -