⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profile.c

📁 TDK 6521 SOC 芯片 DEMO程序
💻 C
📖 第 1 页 / 共 2 页
字号:
    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 + -