The windows driver of pre-trigger is given as follows:
WORD CALLBACK P180X_StartScanPreTrg(WORD wSampleRateDiv, DWORD dwNum,
SHORT nPriority)
{
disable_timer0(); //
disable internal pacer timer
disable_timer1(); //
disable external pacer timer
wVal=pic_control(0xD400); /* 11?1 01?? ???? ???? cmd_101=start scan */
if (wVal!=0) return(wVal);
_outpw(wAddrCtrl,0xf000);
// 1. disable all external trigger
enable_timer1(wSampleRateDiv); // 2. Sampling rate=8M/dwSampleRateDiv
_outpw(wAddrCtrl,0x6800);
// 3. B15=0,S2=0,S1=1,S0=0 --> clr FIFO
_outpw(wAddrCtrl,0xE800);
// 3. B15=1,S2=0,S1=1,S0=0 --> enable timer-1
_outpw(wAddrCtrl,0xF800);
// 4. S2=1; S1=1; S0=0 --> wait ext signal to
//
disable timer-1
// create magicscan thread
InitializeCriticalSection(&MagicScan_CS);
wThreadStatus=0; wPreMid=0; wAskThreadStop=0; //
pre-trigger
hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)
magic_scan_pre_mid_trg, NULL, 0,&dwThreadID);
SetThreadPriority(hThread,nPriority);
// can not use HI/LO alarm & digital filter
i=0;
for(;;)
{
EnterCriticalSection(&MagicScan_CS);
j=wThreadStatus;
LeaveCriticalSection(&MagicScan_CS);
if (j!=0) break;
i++; Sleep(1);
if (i>1000) return(ThreadCreateError);
}
return(NoError);
}
z
P1202_StartScanPostTrg(…) is designed for PCI-1202H/L/HU/LU
z
P1602_StartScanPostTrg(…) is designed for PCI-1602 and PCI-1602F
PCI-1202/1602/1800/1802 Hardware User’s Manual
(
Ver.4.2, Dec/2009, PMH-014-42)---- 54