📄 springboardio.c
字号:
}
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 + -