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

📄 springboardio.c

📁 可编程器件厂商Xilinx的手持式逻辑分析仪的逻辑设计
💻 C
📖 第 1 页 / 共 4 页
字号:
    }
    HsCardErrCatch
    {
        bSuccess = false;

        /*====================================================================*/
        /* Alert the user that the HandSpring Module must be installed before */
        /* the PocketAnalyzer Application can be run.                         */
        /*====================================================================*/
        FrmAlert (NoSpringBoardModuleAlert);

        /*====================================================================*/
        /* Add and event to the queue to inform the PocketAnalyzer application*/
        /* to stop and shutdown.                                              */
        /*====================================================================*/
        event.eType = appStopEvent;
        EvtAddEventToQueue(&event);
    } HsCardErrEnd
#endif

    return bSuccess;
}




/*============================================================================*/
/* Function:            sbioWriteTriggerWord                                  */
/* Description:         This routine receives and array of channel trigger    */
/*                      states.  The index into the array corresponds to the  */
/*                      specific channel number.  The array is converted into */
/*                      the specific bit pattern expected by the SpringBoard  */
/*                      module and is downloaded.
/*                                                                            */
/* Arguments:           TrigState[] = Array of channel trigger states.        */
/* Returns:             bSuccess    = Successful trigger word setup flag.     */
/* Globals affected:    None                                                  */
/* Hardware affected:   None                                                  */
/*                                                                            */
/*============================================================================*/
/* Change History:                                                            */
/*                                                                            */
/* ECO#:  ?                                                                   */
/* Change Date:  dd-mmm-yyyy                                                  */
/* Changed By:   ?                                                            */
/* Description of Change:  ?                                                  */
/*                                                                            */
/*============================================================================*/
Boolean sbioWriteTriggerWord (TrigStateType *TrigState)
{
    /*========================================================================*/
    /* Declare all local variables.                                           */
    /*========================================================================*/
    UInt16  *uiRegAddress;
    UInt16 uiTrigWordSettings = 0;
    Boolean bSuccess = true;
    EventType event;

#ifndef EmulateSBIO
    /*========================================================================*/
    /* Set the Register Address equal to the Sample Rate register.            */
    /*========================================================================*/
    uiRegAddress = (unsigned short *)TriggerWordReg;

    /*========================================================================*/
    /* Build the bit settings for Channel 0's trigger word.                   */
    /*========================================================================*/
    switch (TrigState[0])
    {
        case trigwordLowLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0000;
            break;
        case trigwordDontCare:
            uiTrigWordSettings = uiTrigWordSettings | 0x0002;
            break;
        case trigwordHiLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0003;
            break;
        default:
            uiTrigWordSettings = uiTrigWordSettings | 0x0002;
            break;
    }

    /*========================================================================*/
    /* Build the bit settings for Channel 1's trigger word.                   */
    /*========================================================================*/
    switch (TrigState[1])
    {
        case trigwordLowLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0000;
            break;
        case trigwordDontCare:
            uiTrigWordSettings = uiTrigWordSettings | 0x0008;
            break;
        case trigwordHiLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x000C;
            break;
        default:
            uiTrigWordSettings = uiTrigWordSettings | 0x1008;
            break;
    }

    /*========================================================================*/
    /* Build the bit settings for Channel 2's trigger word.                   */
    /*========================================================================*/
    switch (TrigState[2])
    {
        case trigwordLowLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0000;
            break;
        case trigwordDontCare:
            uiTrigWordSettings = uiTrigWordSettings | 0x0020;
            break;
        case trigwordHiLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0030;
            break;
        default:
            uiTrigWordSettings = uiTrigWordSettings | 0x0020;
            break;
    }

    /*========================================================================*/
    /* Build the bit settings for Channel 3's trigger word.                   */
    /*========================================================================*/
    switch (TrigState[3])
    {
        case trigwordLowLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0000;
            break;
        case trigwordDontCare:
            uiTrigWordSettings = uiTrigWordSettings | 0x0080;
            break;
        case trigwordHiLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x00C0;
            break;
        default:
            uiTrigWordSettings = uiTrigWordSettings | 0x0080;
            break;
    }

    /*========================================================================*/
    /* Build the bit settings for Channel 4's trigger word.                   */
    /*========================================================================*/
    switch (TrigState[4])
    {
        case trigwordLowLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0000;
            break;
        case trigwordDontCare:
            uiTrigWordSettings = uiTrigWordSettings | 0x0200;
            break;
        case trigwordHiLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0300;
            break;
        default:
            uiTrigWordSettings = uiTrigWordSettings | 0x0200;
            break;
    }

    /*========================================================================*/
    /* Build the bit settings for Channel 5's trigger word.                   */
    /*========================================================================*/
    switch (TrigState[5])
    {
        case trigwordLowLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0000;
            break;
        case trigwordDontCare:
            uiTrigWordSettings = uiTrigWordSettings | 0x0800;
            break;
        case trigwordHiLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0C00;
            break;
        default:
            uiTrigWordSettings = uiTrigWordSettings | 0x0800;
            break;
    }

    /*========================================================================*/
    /* Build the bit settings for Channel 6's trigger word.                   */
    /*========================================================================*/
    switch (TrigState[6])
    {
        case trigwordLowLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0000;
            break;
        case trigwordDontCare:
            uiTrigWordSettings = uiTrigWordSettings | 0x2000;
            break;
        case trigwordHiLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x3000;
            break;
        default:
            uiTrigWordSettings = uiTrigWordSettings | 0x2000;
            break;
    }

    /*========================================================================*/
    /* Build the bit settings for Channel 7's trigger word.                   */
    /*========================================================================*/
    switch (TrigState[7])
    {
        case trigwordLowLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0x0000;
            break;
        case trigwordDontCare:
            uiTrigWordSettings = uiTrigWordSettings | 0x8000;
            break;
        case trigwordHiLevel:
            uiTrigWordSettings = uiTrigWordSettings | 0xC000;
            break;
        default:
            uiTrigWordSettings = uiTrigWordSettings | 0x8000;
            break;
    }

    /*========================================================================*/
    /* Write the new sample rate setting value to the actual register.        */
    /*========================================================================*/
    HsCardErrTry
    {
        *uiRegAddress = uiTrigWordSettings;
    }
    HsCardErrCatch
    {
        bSuccess = false;

        /*====================================================================*/
        /* Alert the user that the HandSpring Module must be installed before */
        /* the PocketAnalyzer Application can be run.                         */
        /*====================================================================*/
        FrmAlert (NoSpringBoardModuleAlert);

        /*====================================================================*/
        /* Add and event to the queue to inform the PocketAnalyzer application*/
        /* to stop and shutdown.                                              */
        /*====================================================================*/
        event.eType = appStopEvent;
        EvtAddEventToQueue(&event);
    } HsCardErrEnd
#endif

    return (bSuccess);
}




/*============================================================================*/
/* Function:            sbioWriteRunReg                                       */
/* Description:         This routine receives Start/Stop command and the data */
/*                      bank to use for the data.  The function then formats  */
/*                      this data and sends it to the SpringBoard module.     */
/*                                                                            */
/* Arguments:           bStartStop   = Start/Stop Signal                      */
/*                                          Start = true                      */
/*                                          Stop  = false                     */
/*                      uiBankSelect = Bank select (0-63) which defines which */
/*                                     8K buffer the data will be stored in.  */
/* Returns:             bSuccess     = Successful write of data to the        */
/*                                     SpringBoard module.                    */
/* Globals affected:    None                                                  */
/* Hardware affected:   None                                                  */
/*                                                                            */
/*============================================================================*/
/* Change History:                                                            */
/*                                                                            */
/* ECO#:  ?                                                                   */
/* Change Date:  dd-mmm-yyyy                                                  */
/* Changed By:   ?                                                            */
/* Description of Change:  ?                                                  */
/*                                                                            */

⌨️ 快捷键说明

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