Example #1
0
void	SetDipAddress(unsigned char Address) {
    BTN_S0_LAT_BIT = false;
    BTN_S1_LAT_BIT = false;
    BTN_S2_LAT_BIT = false;
    if (chkbit(Address,0)) BTN_S0_LAT_BIT = true;
    if (chkbit(Address,1)) BTN_S1_LAT_BIT = true;
    if (chkbit(Address,2)) BTN_S2_LAT_BIT = true;
}
Example #2
0
//******************************************************************************
//JDunne 5/27/07 - Converted routine from assembly to C.  (used to be called SEND_TO_LATCHES)
//------------------------------------------------------------------------------
void	SendDataToShiftReg(unsigned char dataToSend) {
    unsigned char DataCounter;
//SEND_SPEC_TO_LATCHES
    DataCounter = 8;								//Load number of bits to be transfered

//	bcf	SRCK_LAT_BIT						//Control clock signal, also prevent IIC start
    SHIFTREG_RCK_LAT_BIT = true;			//Flush out garbage
    SHIFTREG_RCK_LAT_BIT = false;

//STL_TRANSMIT_BIT
    do {
        SHIFTREG_SRCK_LAT_BIT = false;				//Clear strobe pin
        if (!chkbit(dataToSend, 7)) {		//MSB high?
            SHIFTREG_SER_IN_LAT_BIT = false;		//No, set data signal low
        }
        else {								//MSB low?
            SHIFTREG_SER_IN_LAT_BIT = true;		//No, release data signal
        }
        dataToSend <<=1;					//Shift next bit to MSB position
        SHIFTREG_SRCK_LAT_BIT = true;

//STL_RESET_CLOCK_LEVEL
    } while (--DataCounter!=0);				//All 8 bits transfered? No, go transfer next bit

//STL_STROBE
    SHIFTREG_RCK_LAT_BIT = true;			//Strobe the data

//STL_STROBE_DELAY
    for (DataCounter = LATCH_STROBE_DELAY; DataCounter !=0; DataCounter--);		//Pause for data transfer from external latch_1's input to its output

    SHIFTREG_RCK_LAT_BIT = false;
    SHIFTREG_SER_IN_LAT_BIT = true;				//Release data signal
    SHIFTREG_SRCK_LAT_BIT = true;			//Release serial clk
}
Example #3
0
int Test::GetWillBeTestedType(void)
{
    int type =0;    
    IED_DATABASE::YP_DATA *Sample = &IedDb.Sample1[0];	
    int TestType[] = {S_TEST_WATER,S_TEST_VOL,S_TEST_ASH};
    for(int j=0;j<3;j++)
    { 
        //完成项目被跳过
        //
        bool bBreak = FALSE;
        for(int i=0;i<IedDb.DownloadWorkParam.m_btMaxSampleCnt;i++)
        {
            if(chkbit(Sample[i].cCSta,TestType[j]))           //     
            {
                bBreak = TRUE;
                break;
            }
        }
        if(bBreak==TRUE)
            continue;
        
        //样品测试项目计算,如果有一个需要测试该项目,就测试该项目
        for(int cnt=0;cnt<IedDb.DownloadWorkParam.m_btMaxSampleCnt;cnt++) 
        {
            if(Sample[cnt].cItem&(1L<<j))
                return TestType[j];
        }   
    }
    return type;
}
void Sieve(){
    int i, j, k;
    setbit(ar, 0), setbit(ar, 1);

    for (i = 3; (i * i) < MAX; i++, i++){
        if (!chkbit(ar, i)){
            k = i << 1;
            for (j = (i * i); j < MAX; j += k) setbit(ar, j);
        }
    }

    p = 0;
    prime[p++] = 2;
    for (i = 3; i < MAX; i++, i++){
        if (isprime(i)) prime[p++] = i;
    }
}