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

📄 dp_debug.c

📁 PROFIBUS SLAVE PROGRAMS PRO FIBUS SLAVE PROGRAMS
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************  Filename: dp_debug.c  *******************************/
/* ========================================================================= */
/*                                                                           */
/* 0000  000   000  00000 0  000  0   0 0 0000                               */
/* 0   0 0  0 0   0 0     0 0   0 0   0 0 0   0                              */
/* 0   0 0  0 0   0 0     0 0     0   0 0 0   0      Einsteinstra遝 6        */
/* 0000  000  0   0 000   0 0     00000 0 0000       91074 Herzogenaurach    */
/* 0     00   0   0 0     0 0     0   0 0 0                                  */
/* 0     0 0  0   0 0     0 0   0 0   0 0 0          Tel: ++49-9132-744-200  */
/* 0     0  0  000  0     0  000  0   0 0 0    GmbH  Fax: ++49-9132-744-204  */
/*                                                                           */
/* ========================================================================= */
/*                                                                           */
/* Description: Print routines for serio.c.                                  */
/*                                                                           */
/* ------------------------------------------------------------------------- */
/*                                                                           */
/* Technical support:       P. Fredehorst                                    */
/*                          Tel. : ++49-9132/744-214                         */
/*                          Fax. :              -204                         */
/*                          eMail: pfredehorst@profichip.com                 */
/*                                                                           */
/*****************************************************************************/


/*****************************************************************************/
/* contents:

  - function prototypes
  - data structures
  - internal functions

*/
/*****************************************************************************/
/* include hierarchy */

#include "..\..\dp_inc\platform.h"
#include "..\..\dp_inc\dp_inc.h"

#ifdef RS232_SERIO

/*---------------------------------------------------------------------------*/
/* function prototypes                                                       */
/*---------------------------------------------------------------------------*/
extern UBYTE user_demo_diagnostic( UBYTE diag_nr, UBYTE module_nr );

/*---------------------------------------------------------------------------*/
/* function: wait                                                            */
/*---------------------------------------------------------------------------*/
void wait( void )
{
    do
    {
        // wait!
        VPC3_RESET_USER_WD();   // toggle user watchdog
    }
    while( snd_counter > 50);
}

/*---------------------------------------------------------------------------*/
/* function: write_debug_buffer                                              */
/*---------------------------------------------------------------------------*/
#ifdef DP_DEBUG_ENABLE
void PrintDebugBuffer( void )
{
UWORD wIndex;
UWORD i;

    print_string("\r\nDebug_Buffer: ");
    print_hexbyte( bDebugBufferIndex );
    print_hexbyte( bDebugBufferOverlapped );

	wait();
	
	wIndex = 0;
    if( bDebugBufferOverlapped == TRUE )
    {
        for( i = bDebugBufferIndex; i < (MAX_NR_OF_DEBUG-1); i++ )
        {
            if( (wIndex%4) == 0 )
            {
				wait();
                
                print_string("\r\n");
                print_hexbyte(wIndex);
                print_string("  ");
            }//if( (wIndex%4) == 0 )
            print_hexbyte( asDebugBuffer[i].bDebugCode );
            print_hexbyte( asDebugBuffer[i].bDetail1   );
            print_hexbyte( asDebugBuffer[i].bDetail2   );
            print_string(" - ");
            wIndex++;
        }//for( i = 0; i < bDebugBufferIndex; i++ )
    }//if( bDebugBufferOverlapped == TRUE )

    for( i = 0; i < bDebugBufferIndex; i++ )
    {
        if( (wIndex%4) == 0 )
        {
			wait();

            print_string("\r\n");
            print_hexbyte(wIndex);
            print_string("  ");
        }//if( (wIndex%4) == 0 )
        print_hexbyte( asDebugBuffer[i].bDebugCode );
        print_hexbyte( asDebugBuffer[i].bDetail1   );
        print_hexbyte( asDebugBuffer[i].bDetail2   );
        print_string(" - ");
        wIndex++;
    }//for( i = 0; i < bDebugBufferIndex; i++ )
}//void print_debug_buffer( void )
#endif//#ifdef DP_DEBUG_ENABLE

/*---------------------------------------------------------------------------*/
/* function: print_help                                                      */
/*---------------------------------------------------------------------------*/
void print_help( void )
{
    print_string("\r\nHelp: ");
    print_string("\r\na,A : Statusregister");
    print_string("\r\nb,B : Moderegister");
    print_string("\r\nc,C : Organizational Parameter");
    #ifdef DP_FDL
        print_string("\r\nd,D : FDL-SAP-List");
    #endif//#ifdef DP_FDL
    print_string("\r\ne,E : Diagnostic Data");
    print_string("\r\nf,F : Parameter Data");
    print_string("\r\ng,G : Check Config Data");

    wait();

    #ifdef DP_SUBSCRIBER
        print_string("\r\nh,H : DXB Link Table");
        print_string("\r\ni,I : DXB Link Status");
    #endif//#ifdef DP_SUBSCRIBER

    print_string("\r\nj,J : VPC3 Free Memory");

    wait();

    print_string("\r\n");
    print_string("\r\n  1 : set   diagnostic alarm (module 5)");
    print_string("\r\n  2 : reset diagnostic alarm (module 5)");
    print_string("\r\n  3 : set   diagnostic alarm (module 6)");

    wait();

    print_string("\r\n  4 : reset diagnostic alarm (module 6)");
    print_string("\r\n  5 : set   process    alarm (module 6)");
    print_string("\r\n  6 : reset process    alarm (module 6)");
    print_string("\r\n");
}//void print_help( void )

/*---------------------------------------------------------------------------*/
/* function: show_buffer                                                     */
/*---------------------------------------------------------------------------*/
void show_buffer(char * msg_ptr, UBYTE * ptr, UWORD length)
{
UWORD i;

    print_string("\r\n");
    print_string( msg_ptr );

    print_string("\r\nAdr: ");
    print_hexword(ptr);

    print_string("  length: ");
    print_hexword(length);

    print_string("\r\nAdr:   00-01-02-03-04-05-06-07-08-09-0A-0B-0C-0D-0E-0F");
    for( i = 0; i < length; i++ )
    {
        if( i%16 == 0 )
        {
            wait();

            print_string("\r\n");
            print_hexword(i);
            print_string("  ");
        }//if( i%16 == 0 )
        print_string(" ");
        print_hexbyte(*(ptr+i));
    }//for( i = 0; i < length; i++ )
    print_string("\r\n");
}//void show_buffer(char * msg_ptr, UBYTE * ptr, UWORD length)

/*---------------------------------------------------------------------------*/
/* function: print organizational parameters                                 */
/*---------------------------------------------------------------------------*/
void print_org_para( void )
{
    show_buffer("Organizational Parameters:", &p_Vpc3->slave_addr, 42 );
}//void print_org_para( void )

/*---------------------------------------------------------------------------*/
/*   function:     print sap list                                            */
/*---------------------------------------------------------------------------*/
void print_sap_list( void )
{
#ifdef DP_FDL
UBYTE i;

    for( i = 0; i < SAP_LENGTH/7; i++ )
    {
        show_buffer("SAP-List:", &p_Vpc3->sap_ctrl_list[i*7], 7 );
        show_buffer("Buffer:",   (UBYTE *)((VPC3_ADR)(p_Vpc3->sap_ctrl_list[(i*7)+4] << SEG_MULDIV)+(VPC3_ADR)VPC3_ASIC_ADDRESS), 16 );
    }//for( i = 0; i < SAP_LENGTH/7; i++ )
#endif//#ifdef DP_FDL
    return;
}//void print_sap_list( void )

/*---------------------------------------------------------------------------*/
/* function: print_diag_buffer                                               */
/*---------------------------------------------------------------------------*/
void print_diag_buffer( void )
{
    print_string("\r\nDiag_SM:");
    print_hexbyte(p_Vpc3->ctrl_reg.rd.diag_buffer_sm);
    show_buffer("Diag Buffer1:", VPC3_GET_DIAG1_PTR(), p_Vpc3->len_diag_buf[0] );
    show_buffer("Diag Buffer2:", VPC3_GET_DIAG2_PTR(), p_Vpc3->len_diag_buf[1] );
}//void print_diag_buffer( void )

/*---------------------------------------------------------------------------*/
/* function: print_prm_data                                                  */
/*---------------------------------------------------------------------------*/
void print_prm_data( void )
{
    show_buffer("NEW_PRM_DATA:", VPC3_GET_PRM_BUF_PTR(), VPC3_GET_PRM_LEN() );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -