⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dac_search.cpp

📁 这是一个手机校准程序
💻 CPP
字号:
// dac_search.cpp
//
// search for dac value that gives designated peak power
//
// Sept. 25, 2000
//

#include <math.h>
#include "error.h"
#include "caltypes.h"
#include "HS.h"
#include "measure.h"
#include "cal_class.h"

#define		RAMP_LENGTH		32		// entries in 1 ramp
#define   MAX_TX_TRIALS 32


void cal::search_for_apc_dac(float target,unsigned *peak,float *msrd,
                             unsigned *upper_limit,unsigned *lower_limit,unsigned *hard_lower_limit,
                             UserDefParm_t parms,
                             Error_t *stat)

  {
  unsigned num_trials;
	unsigned trial_ramp[RAMP_LENGTH];
  unsigned measure_stat;

  num_trials=0;
  build_pedestal_ramp(0x180,0x180,*peak,trial_ramp,(float)0.1,parms);
	cal_hs.HS_SetRamp(trial_ramp);
  Sleep(100);
  measure_stat=cal_measure.GetTxPower(target,msrd,target>15.0);
  if(measure_stat==FALSE)
    {
    *hard_lower_limit=*peak;   // don't go below this - can't measure the power
    *msrd=-20.0;               // set this artificially low to indicate low power
    }

  while(fabs(*msrd-target)>0.5 && num_trials<MAX_TX_TRIALS)
    {
    if(*msrd>target)
      {
      *upper_limit=*peak;
      *peak=(*peak+*lower_limit)/2;
      }
    else
      {
      *lower_limit=*peak;
      *peak=(*peak+*upper_limit)/2;
      }
    num_trials++;

    build_pedestal_ramp(0x180,0x180,*peak,trial_ramp,(float)0.1,parms);
	  cal_hs.HS_SetRamp(trial_ramp);
 		Sleep(100);
    measure_stat=cal_measure.GetTxPower(target,msrd,target>15.0);
    if(measure_stat==FALSE)
      {
      *hard_lower_limit=*peak;   // don't go below this - can't measure the power
      *msrd=-20.0;               // set this artificially low to indicate low power
      }
    }
  if(num_trials==MAX_TX_TRIALS)
    {
    *stat=TOO_MANY_TX_TRIALS;
    }
  else
    {
    *stat=SUCCESS;
    }
  } // end 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -