|
/*********************************************************
功能:sensor测量
输入参数:source
输出参数:无
返回值:无
调用关系:无
使用的资源:LCD
*********************************************************/
unsigned int measure_refer (int source)
{
P1DIR &= ~Ref; // Ref = HiZ, Charge complete
P1OUT &= ~source; // Ref = Reset
//TACTL = TASSEL_2 + MC_2 + TACLR; // SMCLK,连续模式,清除TAR
CCTL1 = CM_2 + CCIS_1 + CAP + CCIE; // Neg, CCIB,Cap,interrupt
timer_count = TAR; // TAR at before discharge
P1DIR |= source; // Temp = Sensor or Ref
_BIS_SR(LPM0_bits); // Wait for CCR1 interrupt
timer_count = CCR1 - timer_count; // timer_count = discharge time
P1DIR &= ~ Ref; // Disa××e Sensor or Ref
P2DIR &= ~ Sensor;
CCTL1 = 0x00; // Disa××e CCTL1
return(timer_count);
}
/*********************************************************
功能:refer测量
输入参数:source
输出参数:无
返回值:无
调用关系:无
使用的资源:LCD
*********************************************************/
unsigned int measure_sensor (int source)
{
P1DIR &= ~Ref; // Ref = HiZ, Charge complete
P2OUT &= ~source; // Ref = Reset
//TACTL = TASSEL_2 + MC_2 + TACLR; // SMCLK,连续模式,清除TAR
CCTL1 = CM_2 + CCIS_1 + CAP + CCIE; // Neg, CCIB,Cap,interrupt
timer_count = TAR; // TAR at before discharge
P2DIR |= source; // Temp = Sensor or Ref
_BIS_SR(LPM0_bits); // Wait for CCR1 interrupt
timer_count = CCR1 - timer_count; // timer_count = discharge time
P1DIR &= ~ Ref; // Disa××e Sensor or Ref
P2DIR &= ~ Sensor;
CCTL1 = 0x00; // Disa××e CCTL1
return(timer_count);
}
这是我一个项目中的测量的一段程序,你可以改一下。 |
|