示例#1
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XShamber::ReadTemperature()
{
    float fcode;
    if(ReadAd(temp1ReadCh,fcode)){
		m_CurrTemp1 = fcode*10/4096;
		temp1Code = fcode;
	}
	if(ReadAd(temp2ReadCh,fcode)){
		m_CurrTemp2 = fcode*10/4096;
		temp2Code = fcode;
    }
}
示例#2
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XRayTube::ReadPower12Vol(){
	float fcode;
	if(ReadAd(Power12vCh,fcode)){
		Power12Vol = fcode*12/10;
		if(Power12Vol<0) Power12Vol=0;
		V12ReadCode = fcode;
	}
}
示例#3
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XRayTube::ReadPower5Vol(){
	float fcode;
	if(ReadAd(Power5vCh,fcode)){
		Power5Vol = fcode*5/10;
		if(Power5Vol<0) Power5Vol=0;
		V5ReadCode = fcode;
	}
}
示例#4
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XRayTube::ReadPower24Vol(){
    float fcode;
    if(ReadAd(Power24vCh,fcode)){
        Power24Vol = fcode*24/10; 
		if(Power24Vol<0) Power24Vol=0;
		V24ReadCode = fcode;
	}
}
示例#5
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XShamber::ReadAngle()
{
    float fcode;
    if(ReadAd(angleReadCh,fcode)){
		CurrAngle = fcode*10/4096;
		angleCode = fcode;
	}
}
示例#6
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XRayTube::ReadMA(){
	float fcode;
	if(ReadAd(MaReadAdCh,fcode)) { // fcode: 0~10v
		m_CurrMA=fcode*1000/10;    //1000ma
		if(m_CurrMA<0) m_CurrMA=0;
		MaReadCode = fcode;
	}
}
示例#7
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XRayTube::ReadHV(){
	float fcode;
	if(ReadAd(HvReadAdCh,fcode)) { // fcode: 0~10v
		m_CurrHV = fcode*50/10;    //50KV
		if(m_CurrHV<0) m_CurrHV=0;
		HvReadCode = fcode;
	}
}
示例#8
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XRayTube::ReadStdHV(){
    float fcode;
    if(ReadAd(StdReadCh,fcode)){ // fcode: 0~10v
        m_StdCurrHV = fcode*10/10;
		if(m_StdCurrHV<0) m_StdCurrHV=0;
		StdReadCode = fcode;
	}
}
示例#9
0
文件: XRFUNIT.CPP 项目: dos5gw/TMeter
void XRayTube::ReadH2500HV(){
    float fcode;
    if(ReadAd(H2500ReadCh,fcode)){ // fcode: 0~10v
        m_H2500CurrentHV = fcode*2500/10;
		if(m_H2500CurrentHV<0) m_H2500CurrentHV=0;
		H2500ReadCode = fcode;
    }
}
示例#10
0
void _ISRFAST _T1Interrupt(void)
{

// read ambient light and switch on leds in a first phase
// wait 350 us to let the phototransistor react
// read reflected light and switch off the leds in a second phase
// wait 3 ms before stating again
// repeat these two steps for the four couples of prox sensors

    static int ir_phase=0;	// phase can be 0 (ambient) or 1 (reflected)
    static int ir_number=0;	// number goes from 0 to 3 (4 couples of sensors)

    IFS0bits.T1IF = 0;            // clear interrupt flag

    switch (ir_number)
    {
    case 0:		// ir sensors 0 and 4
    {
        if (ir_phase == 0)
        {
            PR1 = (350.0*MICROSEC)/8.0;		// next interrupt in 350 us
            ambient_ir[0] = ReadAd(IR0);
            ambient_ir[4] = ReadAd(IR4);
            pulse_IR0 = 1;			// led on for next measurement
            ir_phase = 1;			// next phase
        }
        else
        {
            PR1 = (2100.0*MICROSEC)/8.0;		// next interrupt in 3 ms
            ambient_and_reflected_ir[0] = ReadAd(IR0);
            ambient_and_reflected_ir[4] = ReadAd(IR4);
            reflected_ir[0] = ambient_ir[0] - ambient_and_reflected_ir[0];
            reflected_ir[4] = ambient_ir[4] - ambient_and_reflected_ir[4];
            pulse_IR0 = 0;			// led off
            ir_phase = 0;			// reset phase
            ir_number = 1;			// next two sensors
        }
        break;
    }
    case 1:		// ir sensors 1 and 5
    {
        if (ir_phase == 0)
        {
            PR1 = (350.0*MICROSEC)/8.0;		// next interrupt in 350 us
            ambient_ir[1] = ReadAd(IR1);
            ambient_ir[5] = ReadAd(IR5);
            pulse_IR1 = 1;			// led on for next measurement
            ir_phase = 1;			// next phase
        }
        else
        {
            PR1 = (2100.0*MICROSEC)/8.0;		// next interrupt in 3 ms
            ambient_and_reflected_ir[1] = ReadAd(IR1);
            ambient_and_reflected_ir[5] = ReadAd(IR5);
            reflected_ir[1] = ambient_ir[1] - ambient_and_reflected_ir[1];
            reflected_ir[5] = ambient_ir[5] - ambient_and_reflected_ir[5];
            pulse_IR1 = 0;			// led off
            ir_phase = 0;			// reset phase
            ir_number = 2;			// next two sensors
        }
        break;
    }
    case 2:		// ir sensors 2 and 6
    {
        if (ir_phase == 0)
        {
            PR1 = (350.0*MICROSEC)/8.0;		// next interrupt in 350 us
            ambient_ir[2] = ReadAd(IR2);
            ambient_ir[6] = ReadAd(IR6);
            pulse_IR2 = 1;			// led on for next measurement
            ir_phase = 1;			// next phase
        }
        else
        {
            PR1 = (2100.0*MICROSEC)/8.0;		// next interrupt in 3 ms
            ambient_and_reflected_ir[2] = ReadAd(IR2);
            ambient_and_reflected_ir[6] = ReadAd(IR6);
            reflected_ir[2] = ambient_ir[2] - ambient_and_reflected_ir[2];
            reflected_ir[6] = ambient_ir[6] - ambient_and_reflected_ir[6];
            pulse_IR2 = 0;			// led off
            ir_phase = 0;			// reset phase
            ir_number = 3;			// next sensor
        }
        break;
    }
    case 3:		// ir sensors 3 and 7
    {
        if (ir_phase == 0)
        {
            PR1 = (350.0*MICROSEC)/8.0;		// next interrupt in 350 us
            ambient_ir[3] = ReadAd(IR3);
            ambient_ir[7] = ReadAd(IR7);
            pulse_IR3 = 1;			// led on for next measurement
            ir_phase = 1;			// next phase
        }
        else
        {
            PR1 = (2100.0*MICROSEC)/8.0;		// next interrupt in 3 ms
            ambient_and_reflected_ir[3] = ReadAd(IR3);
            ambient_and_reflected_ir[7] = ReadAd(IR7);
            reflected_ir[3] = ambient_ir[3] - ambient_and_reflected_ir[3];
            reflected_ir[7] = ambient_ir[7] - ambient_and_reflected_ir[7];
            pulse_IR3 = 0;			// led off
            ir_phase = 0;			// reset phase
            ir_number = 0;			// next sensor (back to beginning)
        }
        break;
    }
    }

}