|
@@ -266,7 +266,8 @@ uint8_t GP22_CalcHSC(void)
|
|
|
correctionFactor = ((1 << (GP22_CLKHS_PERIOD + 1)) * 1000 / 32.768)
|
|
correctionFactor = ((1 << (GP22_CLKHS_PERIOD + 1)) * 1000 / 32.768)
|
|
|
/ (hscReadValue / 65536) * GP22_CLKHS_FREQ;
|
|
/ (hscReadValue / 65536) * GP22_CLKHS_FREQ;
|
|
|
GP22_CALC_CLKHS_FREQ =
|
|
GP22_CALC_CLKHS_FREQ =
|
|
|
- correctionFactor * GP22_CLKHS_FREQ;
|
|
|
|
|
|
|
+ GP22_CLKHS_FREQ;
|
|
|
|
|
+ // correctionFactor * GP22_CLKHS_FREQ;
|
|
|
#ifdef __DEBUG_GP22_ATY
|
|
#ifdef __DEBUG_GP22_ATY
|
|
|
printf("\r\nCHSC - Theoretical value: 0x%08X - %1.6f",
|
|
printf("\r\nCHSC - Theoretical value: 0x%08X - %1.6f",
|
|
|
hscReadValue, (float)hscReadValue / 65536);
|
|
hscReadValue, (float)hscReadValue / 65536);
|
|
@@ -348,11 +349,11 @@ uint32_t PW1ST_ValueA = 0;
|
|
|
float machineDelayTime = 0;
|
|
float machineDelayTime = 0;
|
|
|
float usDistance = 0;
|
|
float usDistance = 0;
|
|
|
|
|
|
|
|
-uint8_t pulseGenNum = 3;
|
|
|
|
|
-uint8_t pulseNum = 4;
|
|
|
|
|
-uint8_t firstWaveEnable = 1;
|
|
|
|
|
-uint16_t ignoreTime = 1200;
|
|
|
|
|
-uint16_t offsetValue = 0;
|
|
|
|
|
|
|
+volatile uint8_t pulseGenNum = 3;
|
|
|
|
|
+volatile uint8_t pulseNum = 4;
|
|
|
|
|
+volatile uint8_t firstWaveEnable = 1;
|
|
|
|
|
+volatile uint16_t ignoreTime = 1200;
|
|
|
|
|
+volatile uint16_t offsetValue = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
// #define GP22_MEASURE_US_ANALOG
|
|
// #define GP22_MEASURE_US_ANALOG
|
|
@@ -364,23 +365,21 @@ uint16_t offsetValue = 0;
|
|
|
#if defined(GP22_MEASURE_UsWave1MHz)
|
|
#if defined(GP22_MEASURE_UsWave1MHz)
|
|
|
void GP22_RegInit_UsWave1MHz(void)
|
|
void GP22_RegInit_UsWave1MHz(void)
|
|
|
{
|
|
{
|
|
|
- // 630BE800
|
|
|
|
|
GP22_REG[0] = GP22_CFG_KEEP_DEFAULT0
|
|
GP22_REG[0] = GP22_CFG_KEEP_DEFAULT0
|
|
|
| GP22_CFG0_ANZ_FIRE_0 * pulseGenNum // 3-6 pulse
|
|
| GP22_CFG0_ANZ_FIRE_0 * pulseGenNum // 3-6 pulse
|
|
|
- | GP22_CFG0_DIV_FIRE_0 * 3 // 0CLK | 3FIRE 1MHz pulse
|
|
|
|
|
|
|
+ | GP22_CFG0_DIV_FIRE_0 * 1 // 0CLK | 4 Div for 1MHz pulse
|
|
|
| GP22_CFG0_ANZ_PER_CALRES_0 * GP22_CLKHS_PERIOD
|
|
| GP22_CFG0_ANZ_PER_CALRES_0 * GP22_CLKHS_PERIOD
|
|
|
| GP22_CFG0_DIV_CLKHS_0 * GP22_CLKHS_DIV
|
|
| GP22_CFG0_DIV_CLKHS_0 * GP22_CLKHS_DIV
|
|
|
| GP22_CFG0_START_CLKHS_0 * 1
|
|
| GP22_CFG0_START_CLKHS_0 * 1
|
|
|
| GP22_CFG0_CALIBRATE * 1
|
|
| GP22_CFG0_CALIBRATE * 1
|
|
|
- // | GP22_CFG0_NO_CAL_AUTO * 1
|
|
|
|
|
|
|
+ | GP22_CFG0_NO_CAL_AUTO * 0 // 1 to disable, enable is necessary at mode 2
|
|
|
| GP22_CFG0_MESSB2 * 1
|
|
| GP22_CFG0_MESSB2 * 1
|
|
|
|
|
|
|
|
| GP22_CFG0_ANZ_PORT * 1
|
|
| GP22_CFG0_ANZ_PORT * 1
|
|
|
| GP22_CFG0_TCYCLE * 1
|
|
| GP22_CFG0_TCYCLE * 1
|
|
|
- | GP22_CFG0_ANZ_FAKE * 1
|
|
|
|
|
|
|
+ | GP22_CFG0_ANZ_FAKE * 0
|
|
|
| GP22_CFG0_SEL_ECLK_TEMP * 1
|
|
| GP22_CFG0_SEL_ECLK_TEMP * 1
|
|
|
| GP22_Ids[0];
|
|
| GP22_Ids[0];
|
|
|
- // 194913F1
|
|
|
|
|
GP22_REG[1] = GP22_CFG_KEEP_DEFAULT1
|
|
GP22_REG[1] = GP22_CFG_KEEP_DEFAULT1
|
|
|
| GP22_CFG1_HIT2_0 * 2
|
|
| GP22_CFG1_HIT2_0 * 2
|
|
|
| GP22_CFG1_HIT1_0 * 1
|
|
| GP22_CFG1_HIT1_0 * 1
|
|
@@ -391,7 +390,6 @@ void GP22_RegInit_UsWave1MHz(void)
|
|
|
| GP22_CFG1_SEL_TSTO1_0 * 6
|
|
| GP22_CFG1_SEL_TSTO1_0 * 6
|
|
|
// | GP22_CFG1_EN_FAST_INIT * 1
|
|
// | GP22_CFG1_EN_FAST_INIT * 1
|
|
|
| GP22_Ids[1];
|
|
| GP22_Ids[1];
|
|
|
- // A00000F2
|
|
|
|
|
GP22_REG[2] = GP22_CFG_KEEP_DEFAULT2
|
|
GP22_REG[2] = GP22_CFG_KEEP_DEFAULT2
|
|
|
| GP22_CFG2_EN_INT_TDC_TIMEOUT * 1
|
|
| GP22_CFG2_EN_INT_TDC_TIMEOUT * 1
|
|
|
| GP22_CFG2_EN_INT_HITS * 1
|
|
| GP22_CFG2_EN_INT_HITS * 1
|
|
@@ -400,38 +398,37 @@ void GP22_RegInit_UsWave1MHz(void)
|
|
|
| GP22_CFG2_RFEDGE1 * 0 // 0: rising or falling, 1: and
|
|
| GP22_CFG2_RFEDGE1 * 0 // 0: rising or falling, 1: and
|
|
|
| GP22_CFG2_DELVAL1_0 * ignoreTime / (1 << GP22_CLKHS_DIV)
|
|
| GP22_CFG2_DELVAL1_0 * ignoreTime / (1 << GP22_CLKHS_DIV)
|
|
|
| GP22_Ids[2];
|
|
| GP22_Ids[2];
|
|
|
- // 000000F3
|
|
|
|
|
GP22_REG[3] = GP22_CFG_KEEP_DEFAULT3
|
|
GP22_REG[3] = GP22_CFG_KEEP_DEFAULT3
|
|
|
| GP22_CFG3FW_EN_AUTOCALC_MB2 * 1
|
|
| GP22_CFG3FW_EN_AUTOCALC_MB2 * 1
|
|
|
| GP22_CFG3FW_EN_ERR_VAL * 1
|
|
| GP22_CFG3FW_EN_ERR_VAL * 1
|
|
|
| GP22_CFG3FW_EN_FIRST_WAVE * firstWaveEnable
|
|
| GP22_CFG3FW_EN_FIRST_WAVE * firstWaveEnable
|
|
|
- | GP22_CFG3FW_SEL_TIMO_MB2_0 * 3
|
|
|
|
|
|
|
+ | GP22_CFG3FW_SEL_TIMO_MB2_0 * 1
|
|
|
|
|
+ // | GP22_CFG3FW_SEL_TIMO_MB2_0 * 0
|
|
|
| GP22_CFG3FW_DELREL3_0 * 5
|
|
| GP22_CFG3FW_DELREL3_0 * 5
|
|
|
| GP22_CFG3FW_DELREL2_0 * 4
|
|
| GP22_CFG3FW_DELREL2_0 * 4
|
|
|
| GP22_CFG3FW_DELREL1_0 * 3
|
|
| GP22_CFG3FW_DELREL1_0 * 3
|
|
|
| GP22_Ids[3];
|
|
| GP22_Ids[3];
|
|
|
- // 200000F4
|
|
|
|
|
GP22_REG[4] = GP22_CFG_KEEP_DEFAULT4
|
|
GP22_REG[4] = GP22_CFG_KEEP_DEFAULT4
|
|
|
| GP22_CFG4FW_DIS_PW * 1 // 1: disable
|
|
| GP22_CFG4FW_DIS_PW * 1 // 1: disable
|
|
|
| GP22_CFG4FW_OFFSRNG1 * (((uint16_t)offsetValue % 10) & 0x01)
|
|
| GP22_CFG4FW_OFFSRNG1 * (((uint16_t)offsetValue % 10) & 0x01)
|
|
|
| GP22_CFG4FW_OFFSRNG2 * (((uint16_t)offsetValue % 10) & 0x02)
|
|
| GP22_CFG4FW_OFFSRNG2 * (((uint16_t)offsetValue % 10) & 0x02)
|
|
|
| GP22_CFG4FW_EDGE_FW * (((uint16_t)offsetValue % 10) & 0x04)
|
|
| GP22_CFG4FW_EDGE_FW * (((uint16_t)offsetValue % 10) & 0x04)
|
|
|
| GP22_CFG4FW_OFFS_0 * ((uint16_t)offsetValue / 10)
|
|
| GP22_CFG4FW_OFFS_0 * ((uint16_t)offsetValue / 10)
|
|
|
- // above 4 for first wave mode
|
|
|
|
|
|
|
+ // above 4 only take effect at first wave enable mode
|
|
|
| GP22_Ids[4];
|
|
| GP22_Ids[4];
|
|
|
- // 100000F5
|
|
|
|
|
GP22_REG[5] = GP22_CFG_KEEP_DEFAULT5
|
|
GP22_REG[5] = GP22_CFG_KEEP_DEFAULT5
|
|
|
| GP22_CFG5_CON_FIRE_DOWN * 1
|
|
| GP22_CFG5_CON_FIRE_DOWN * 1
|
|
|
| GP22_CFG5_EN_STARTNOISE * 1
|
|
| GP22_CFG5_EN_STARTNOISE * 1
|
|
|
| GP22_CFG5_DIS_PHASESHIFT * 1
|
|
| GP22_CFG5_DIS_PHASESHIFT * 1
|
|
|
| GP22_Ids[5];
|
|
| GP22_Ids[5];
|
|
|
- // 002000F6
|
|
|
|
|
GP22_REG[6] = GP22_CFG_KEEP_DEFAULT6
|
|
GP22_REG[6] = GP22_CFG_KEEP_DEFAULT6
|
|
|
| GP22_CFG6_EN_ANALOG * 1
|
|
| GP22_CFG6_EN_ANALOG * 1
|
|
|
| GP22_CFG6_EN_INT_END * 1
|
|
| GP22_CFG6_EN_INT_END * 1
|
|
|
- // | GP22_CFG6_TW2_0 * 3
|
|
|
|
|
|
|
+ | GP22_CFG0_START_CLKHS_0 * 1
|
|
|
|
|
+ | GP22_CFG6_TW2_0 * 3
|
|
|
| GP22_CFG6_QUAD_RES * 1
|
|
| GP22_CFG6_QUAD_RES * 1
|
|
|
- | GP22_CFG6_DA_KORR_0 * 8
|
|
|
|
|
|
|
+ // | GP22_CFG6_DOUBLE_RES * 1
|
|
|
|
|
+ // | GP22_CFG6_DA_KORR_0 * 8
|
|
|
|
|
|
|
|
| GP22_CFG6_NEG_STOP_TEMP * 1 // Must set handly
|
|
| GP22_CFG6_NEG_STOP_TEMP * 1 // Must set handly
|
|
|
// | GP22_CFG6_FIREO_DEF * 1
|
|
// | GP22_CFG6_FIREO_DEF * 1
|
|
@@ -478,8 +475,8 @@ uint8_t GP22_StartTof_UsWave1MHz(void)
|
|
|
waveFreq = 1 / wavePeriod; // MHz
|
|
waveFreq = 1 / wavePeriod; // MHz
|
|
|
echoTimeDetect[0] = ((float)tofValue[0] / GP22_CALC_CLKHS_FREQ / 65536);
|
|
echoTimeDetect[0] = ((float)tofValue[0] / GP22_CALC_CLKHS_FREQ / 65536);
|
|
|
// - (wavePeriod * 2);
|
|
// - (wavePeriod * 2);
|
|
|
- if(echoTimeDetect[0] <= 0)
|
|
|
|
|
- echoTimeDetect[0] = machineDelayTime + 1;
|
|
|
|
|
|
|
+ // if(echoTimeDetect[0] <= 0)
|
|
|
|
|
+ // echoTimeDetect[0] = machineDelayTime + 1;
|
|
|
echoTimeCalc[0] = echoTimeDetect[0] - machineDelayTime;
|
|
echoTimeCalc[0] = echoTimeDetect[0] - machineDelayTime;
|
|
|
speedWave[0] = usDistance * 1000.0 / echoTimeCalc[0];
|
|
speedWave[0] = usDistance * 1000.0 / echoTimeCalc[0];
|
|
|
|
|
|
|
@@ -521,8 +518,10 @@ uint8_t GP22_Process_UsWave1MHz(uint8_t cmdCode)
|
|
|
}
|
|
}
|
|
|
// if(cmdCode & GP22_STEP_COMPARE_E2)
|
|
// if(cmdCode & GP22_STEP_COMPARE_E2)
|
|
|
// if(GP22_CompareE2()) return GP22_STEP_COMPARE_E2;
|
|
// if(GP22_CompareE2()) return GP22_STEP_COMPARE_E2;
|
|
|
|
|
+
|
|
|
if(cmdCode & GP22_STEP_CALC_HSC)
|
|
if(cmdCode & GP22_STEP_CALC_HSC)
|
|
|
if(GP22_CalcHSC()) return GP22_STEP_CALC_HSC;
|
|
if(GP22_CalcHSC()) return GP22_STEP_CALC_HSC;
|
|
|
|
|
+ // GP22_CALC_CLKHS_FREQ = GP22_CLKHS_FREQ;
|
|
|
if(cmdCode & GP22_STEP_START_TEMP)
|
|
if(cmdCode & GP22_STEP_START_TEMP)
|
|
|
if(GP22_StartTemp()) errCode = GP22_STEP_START_TEMP;
|
|
if(GP22_StartTemp()) errCode = GP22_STEP_START_TEMP;
|
|
|
if(cmdCode & GP22_STEP_START_TOF)
|
|
if(cmdCode & GP22_STEP_START_TOF)
|
|
@@ -539,7 +538,7 @@ uint8_t GP22_Process_Run(uint8_t cmdCode)
|
|
|
#ifdef __DEBUG_GP22_ATY
|
|
#ifdef __DEBUG_GP22_ATY
|
|
|
printf("\r\nStart");
|
|
printf("\r\nStart");
|
|
|
#endif /* __DEBUG_GP22_ATY */
|
|
#endif /* __DEBUG_GP22_ATY */
|
|
|
- GP22_WAKE;
|
|
|
|
|
|
|
+ // GP22_WAKE;
|
|
|
errCode = GP22_Process_UsWave1MHz(cmdCode);
|
|
errCode = GP22_Process_UsWave1MHz(cmdCode);
|
|
|
// GP22_AnalyseErrCode();
|
|
// GP22_AnalyseErrCode();
|
|
|
#ifdef __DEBUG_GP22_ATY
|
|
#ifdef __DEBUG_GP22_ATY
|