📄 profile.c
字号:
send_byte_hex (USER1);
send_hex (USER0);
any = FALSE;
start_tx_rslt ("\r\nResource assignments ");
for (i = 0; i < 6; i++)
{
if (DIO_R[ i ] & DIO_R_EVEN)
{
any = TRUE;
start_tx_rslt ("Pin ");
send_byte (i << 1);
start_tx_rslt (" = ");
send_hex (DIO_R[ i ] & DIO_R_EVEN);
start_tx_rslt ("; ");
}
if (DIO_R[ i ] & DIO_R_ODD)
{
any = TRUE;
start_tx_rslt ("Pin ");
send_byte ((i << 1) + 1);
start_tx_rslt (" = ");
send_hex ((DIO_R[ i ] & DIO_R_ODD) >> 4);
start_tx_rslt ("; ");
}
}
if (!any)
{
start_tx_rslt ("None");
}
start_tx_rslt ("\r\n");
start_tx_rslt ("Debug port is SERIAL");
send_digit (port);
start_tx_rslt (" @ 8");
start_tx_rslt (PARITY_NONE_0 ? "N" : (PARITY_ODD_0 ? "O" : "E"));
send_byte (STOP_BIT2_0 ? 2 : 1);
start_tx_rslt (rate[ bit_rate_0 ]);
start_tx_rslt (" bps\r\n");
xon_xoff_0 ? start_tx_rslt ("XON/XOFF Flow Control\r\n") : start_tx_rslt ("No Flow Control\r\n");
if (Config & CFG_VAH_SELECT)
start_tx_rslt ("VAh via direct method.\r\n");
else
start_tx_rslt ("VAh via square root method.\r\n");
start_tx_rslt ("\r\nMeter Display Select:");
if (CFG_TAMPER & Config)
{
if (((labsx (w1sum) / 10) * 9) > labsx (w0sum))
start_tx_rslt ("\r\nTampering detected\r\n");
else
start_tx_rslt ("\r\nNo tampering detected\r\n");
}
switch (select_total)
{
case 0:
if (CE_ACTIVE)
start_tx_rslt (" HELLO");
else
start_tx_rslt (" CE OFF");
break;
default:
Total_Profile ();
break;
#if RMS_VALUES
case M_IRMS:
case M_VRMS:
Rms_Profile ();
break;
#endif
}
send_crlf ();
}
static void Total_Profile (void)
{
switch (select_total)
{
case 1: // Temperature.
start_tx_rslt (" Temperature");
break;
case 2: // Frequency.
start_tx_rslt (" Frequency");
break;
case 3: // Wh Total Consumption.
start_tx_rslt (" Wh Consumption for");
Element_Profile ();
break;
case 4: // Wh Total Inverse Consumption.
start_tx_rslt (" Wh Inverse Consumption for");
Element_Profile ();
break;
case 5: // VARh Total Consumption.
start_tx_rslt (" VARh Consumption for");
Element_Profile ();
break;
case 6: // VARh Total Inverse Consumption.
start_tx_rslt (" VARh Inverse Consumption for");
Element_Profile ();
break;
case 7: // VAh Total.
start_tx_rslt (" VAh for");
Element_Profile ();
break;
case 8: // Operating Hours.
start_tx_rslt (" Operating Hours.");
break;
case 9: // Time.
start_tx_rslt (" Real Time.");
break;
case 10: // Date.
start_tx_rslt (" Real Date.");
break;
case 11: // V/I Phase angle.
start_tx_rslt (" V/I Phase Angle for");
switch (select_phase)
{
case 0:
start_tx_rslt (" element A");
break;
case 1:
case 2:
Element_Profile ();
break;
}
break;
default:
break;
}
}
#if RMS_VALUES
static void Rms_Profile (void)
{
switch (select_total)
{
case M_IRMS:
start_tx_rslt (" Irms for");
switch (select_phase)
{
case 0:
start_tx_rslt (" correct element");
break;
case 1:
case 2:
Element_Profile ();
break;
}
break;
case M_VRMS:
start_tx_rslt (" Vrms for");
switch (select_phase)
{
case 0:
start_tx_rslt (" correct element");
break;
case 1:
case 2:
Element_Profile ();
break;
}
break;
default:
break;
}
}
#endif
static void Element_Profile (void)
{
switch (select_phase)
{
case 0:
start_tx_rslt (" good element");
break;
case 1:
start_tx_rslt (" element A");
break;
case 2:
start_tx_rslt (" element B");
break;
case 3:
start_tx_rslt (" element C");
break;
}
}
/***************************************************************************
* History:
* $Log: profile.c,v $
* Revision 1.16 2006/10/13 00:46:20 tvander
* Removed compile options for 6530, 6515; renamed 6511 and 6513 to trace11 and trace13; Binary verified unchanged from previous version.
*
* Revision 1.15 2006/09/09 02:29:29 gmikef
* *** empty log message ***
*
* Revision 1.14 2006/09/09 01:08:31 gmikef
* *** empty log message ***
*
* Revision 1.13 2006/09/06 02:09:21 tvander
* Spaces for tabs
*
* Revision 1.12 2006/08/30 02:09:09 gmikef
* *** empty log message ***
*
* Revision 1.11 2006/05/18 23:18:42 tvander
* 16K and 32K
* First cut at new requirements.
* 32K 6521 is grossly tested.
* All others have a clean compile with C51 8.02
*
* Revision 1.10 2006/03/08 03:06:01 gmikef
* *** empty log message ***
*
* Revision 1.9 2006/03/07 23:57:08 tvander
* Revised help system for accuracy.
* Revised help system for compile flags.
* Clean build
*
* Revision 1.8 2006/03/03 11:25:07 Michael T. Fischer
* Prep for 6530 LCD, etc.
*
* Revision 1.7 2006/01/16 20:11:20 tvander
* Clean Keil build, all versions
*
* Revision 1.6 2006/01/04 04:47:50 gmikef
* Switched RMS and VA calculations to use floating point. (and Calibration).
*
* Revision 1.4 2005/10/08 04:41:18 tvander
* Fixed priority inversion.
* Rewrote watchdog to work in brownout, but of course it doesn't work.
* Watchdog can now be defeated by clearing watchdog option to 0.
* Reorganized watt hour modules (at last!).
* Disabled reading of STATUS in 6521_cli because the CE's status is always SAG.
* Tested with 6521_CLI; measurements seem to work.
* Fixed other builds.
*
* Revision 1.3 2005/09/02 20:39:10 gmikef
* Modified to fit CeCode of 1.5Kbytes and support new "ce_merge".
*
* Revision 1.2 2005/08/30 01:57:24 gmikef
* *** empty log message ***
*
* Revision 1.1 2005/08/28 02:25:14 gmikef
* *** empty log message ***
*
* Revision 1.4 2005/08/26 00:54:02 gmikef
* *** empty log message ***
*
* Revision 1.3 2005/08/20 01:32:45 gmikef
* *** empty log message ***
*
* Revision 1.2 2005/08/19 01:04:38 gmikef
* *** empty log message ***
*
* Revision 1.1 2005/08/18 02:56:08 gmikef
* *** empty log message ***
*
*
* 2005 August 17; First Version.
* Copyright (C) 2005 Teridian Semiconductor Corp. All Rights Reserved. *
* this program is fully protected by the United States copyright *
* laws and is the property of Teridian Semiconductor Corporation. *
***************************************************************************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -