|
|
@@ -1,6 +1,7 @@
|
|
|
|
|
|
#include "board.h"
|
|
|
#include "tdc_tof.h"
|
|
|
+#include "alarm.h"
|
|
|
|
|
|
#define TOF_PWFW_DIFF ((uint16_t)(0x1620u * 25 / 100))
|
|
|
#define TOF_PWFW_LOW ((uint16_t)(0x1620u * 40 / 100))
|
|
|
@@ -228,47 +229,15 @@ void DiffToF2Flow(float dtof)
|
|
|
pTdcItf->flow_vol(vol, TmpFloat);
|
|
|
}
|
|
|
|
|
|
-void tof_isr_convert_tof_to_flow(void)
|
|
|
+void tdoa_filter_convert(void)
|
|
|
{
|
|
|
+
|
|
|
int16_t Tmp16;
|
|
|
float TmpFloat;
|
|
|
uint32_t Tu32;
|
|
|
uint32_t ch = get_mux_ch();
|
|
|
-
|
|
|
- switch (TdcIntStep)
|
|
|
- {
|
|
|
-
|
|
|
- case (0x01u):
|
|
|
-
|
|
|
- // 根据RTC_CntInt设置校准、采集温度,读取飞行时间
|
|
|
-// if ((RTC_CntInt & RTC_CNTMSK_CAL) == 0x0u)
|
|
|
-// {
|
|
|
-// // 间隔8秒进行一次校准
|
|
|
-// tdc_read_tof(TDC_CFG_DO_CKENA);
|
|
|
-// tdc_start_cal(TDC_CFG_DO_CKENA|TDC_CFG_DO_WREG | TDC_CFG_DO_CKDIS);
|
|
|
-// if (tof_flag & TOF_FLAG_UNALGND_CHOP)
|
|
|
-// {
|
|
|
-// TdcIntStep = 0x03u;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// TdcIntStep = 0x02u;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if ((RTC_CntInt & RTC_CNTMSK_TEMP) == 0x4u)
|
|
|
-// {
|
|
|
-// // 间隔4秒采集一次温度
|
|
|
-// tdc_read_tof(TDC_CFG_DO_CKENA);
|
|
|
-// tdc_start_temp(TDC_CFG_DO_CKENA|TDC_CFG_DO_WREG | TDC_CFG_DO_CKDIS);
|
|
|
-// TdcIntStep = 0x04u;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
- // 读取飞行时间
|
|
|
-// tdc_read_tof(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
|
|
|
-// TdcIntStep = 0xFFu;
|
|
|
-// }
|
|
|
-
|
|
|
+// LOG("a\n");
|
|
|
+// LOG("%x\n",TdcStatus);
|
|
|
// LOG("ch-%d-1-U:%.6f-D:%.6f\n\n", ch, TdcScale*TdcUToF[0],TdcScale*TdcDToF[0]);
|
|
|
// if(Tu32 == TDC_CFG_FIRE_UP)
|
|
|
// {
|
|
|
@@ -278,189 +247,236 @@ void tof_isr_convert_tof_to_flow(void)
|
|
|
// {
|
|
|
// LOG("ch-%d-1-D, %.6f\n\n", ch, TdcScale*TdcDToF[0]);
|
|
|
// }
|
|
|
-
|
|
|
// 清反向计量标识
|
|
|
-// pTdcItf->bw_flow_flag = 0;
|
|
|
-// // 空管
|
|
|
-// if (tof_flag & TOF_FLAG_BLANK_PIPE)
|
|
|
-// {
|
|
|
-// // 设置对应德通道为空管
|
|
|
-// pTdcItf->set_blank(ch);
|
|
|
-
|
|
|
-// // DiffTof from normal channel
|
|
|
-// // 正常的通道进行计量
|
|
|
-// if (pTdcItf->ch_bit_map ^ TdcItf.blank_flag)
|
|
|
-// {
|
|
|
-// DiffToF2Flow(DiffToF);
|
|
|
-// SERPLOT_PRINT_4FLOAT_1PREAMBLE(DiffToF, UToFAvg, DToFAvg, CumFlow);
|
|
|
-// }
|
|
|
-// break;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// // 指定通道清除空管
|
|
|
-// pTdcItf->clr_blank(ch);
|
|
|
-// }
|
|
|
-
|
|
|
-// // 计算脉冲宽度
|
|
|
-// Tmp16 = TdcUPwFw - TdcDPwFw;
|
|
|
-// // 判断脉冲宽度有效性
|
|
|
-// if (Tmp16 < (0 - TOF_PWFW_DIFF) || Tmp16 > TOF_PWFW_DIFF)
|
|
|
-// {
|
|
|
-// // 无效脉冲宽度
|
|
|
-// tof_flag |= TOF_FLAG_UNPAIR_WAVE;
|
|
|
-// CntErrEvent++;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// // 有效脉冲宽度
|
|
|
-// tof_flag &= ~TOF_FLAG_UNPAIR_WAVE;
|
|
|
-// // 记录UP和DOWM平均飞行时间
|
|
|
-// UToFAvg = TdcScale * TdcUToF[0];
|
|
|
-// DToFAvg = TdcScale * TdcDToF[0];
|
|
|
-// }
|
|
|
-
|
|
|
-// // 判断offset有效性
|
|
|
-// if (TdcFwOfst < TOF_OFST_LOW || TdcFwOfst > TOF_OFST_HIGH)
|
|
|
-// {
|
|
|
-// // out of range
|
|
|
-// TdcFwOfst = (TOF_OFST_LOW + TOF_OFST_HIGH) / 2; // default offset
|
|
|
-// }
|
|
|
-// else if (tof_flag & TOF_FLAG_UNPAIR_WAVE)
|
|
|
-// {
|
|
|
-// // first wave for up and down is different
|
|
|
-// TdcFwOfst += (TdcFwOfst <= (TOF_OFST_LOW + 3)) ? 2 : -2;
|
|
|
-// }
|
|
|
-// else if (TdcUPwFw < TOF_PWFW_LOW && TdcDPwFw < TOF_PWFW_LOW && TdcFwOfst > TOF_OFST_LOW)
|
|
|
-// {
|
|
|
-// TdcFwOfst -= 1;
|
|
|
-// }
|
|
|
-// else if (TdcUPwFw > TOF_PWFW_HIGH && TdcDPwFw > TOF_PWFW_HIGH && TdcFwOfst < TOF_OFST_HIGH)
|
|
|
-// {
|
|
|
-// TdcFwOfst += 1;
|
|
|
-// }
|
|
|
-
|
|
|
-// // 本次UP和DOWN飞行时间求和
|
|
|
-// SumToF = UToFAvg + DToFAvg; // alomost fixed regardless of water speed
|
|
|
-// // 本次飞行时间和与上次飞行时间和德差值在50内认为有效
|
|
|
-// if (fabsf(SumToF - LastSumToF) < 50.0f)
|
|
|
-// {
|
|
|
-// // 计算飞行时间
|
|
|
-// DiffToF = UToFAvg - DToFAvg - pTdcItf->path_skew[ch];
|
|
|
-// // add by yuewei 20260325 低通平滑滤波
|
|
|
-// // DiffToF = DiffToF * DIFF_TOFF_FILTER_ALPHA + (1 - DIFF_TOFF_FILTER_ALPHA) * DiffToF_LAST;
|
|
|
-
|
|
|
-// // DiffToF = tof_filter(DiffToF);//20260429
|
|
|
-// DiffToF = tof_filter_input_poll(ch, DiffToF);
|
|
|
-// // LOG("ch%d, U=%.6f, D=%.6f\n", ch, UToFAvg, DToFAvg);
|
|
|
-// // LOG("int_cnt=%d, step=%d, ch=%d, DiffToF=%.6f\n\n", int_cnt, get_tdc_int_step(), ch, DiffToF);
|
|
|
-// }
|
|
|
-// // 本次飞行时间和赋值给上次飞行时间和
|
|
|
-// LastSumToF = SumToF;
|
|
|
-
|
|
|
-// if (tof_state & (TOF_ST_METER | TOF_ST_CALIB))
|
|
|
-// {
|
|
|
-// DiffToFAvg += (DiffToF - DiffToFAvg) * (1.0f / 6);
|
|
|
-// DiffToFAvg2 += (DiffToF - DiffToFAvg2) * (1.0f / 2);
|
|
|
-// DiffToFAvg128 += (DiffToF - DiffToFAvg128) * (1.0f / 128);
|
|
|
-// if (tof_flag & TOF_FLAG_VALID_FLOW)
|
|
|
-// {
|
|
|
-// if (fabsf(DiffToFAvg) < 0.35f)
|
|
|
-// {
|
|
|
-// tof_flag &= ~TOF_FLAG_VALID_FLOW;
|
|
|
-// if (tof_state & TOF_ST_CALIB && CalibTime > CALIB_TIME_LTH)
|
|
|
-// {
|
|
|
-// tof_flag |= TOF_FLAG_CALIB_DONE;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-
|
|
|
-// // modified by yuewei 20260519,加入n值,始动流量
|
|
|
-// // if (fabsf(DiffToFAvg) > 0.45f || fabsf(DiffToFAvg2) > 1.0f)
|
|
|
-// if (fabsf(DiffToFAvg * 100.00f) > Paramx.n || fabsf(DiffToFAvg2) > 1.0f)
|
|
|
-// {
|
|
|
-// tof_flag |= TOF_FLAG_VALID_FLOW;
|
|
|
-// if (tof_state & TOF_ST_CALIB)
|
|
|
-// {
|
|
|
-// tof_flag |= TOF_FLAG_CALIB_FLOW;
|
|
|
-// CumFlow = 0;
|
|
|
-// CalibTime = 0;
|
|
|
-// CalibSpdLvl = 0;
|
|
|
-// CalibTemp = 0;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-
|
|
|
-// // 是有效德流量
|
|
|
-// if (tof_flag & TOF_FLAG_VALID_FLOW)
|
|
|
-// {
|
|
|
-// TmpFloat = DiffToF * UsonicSpd * UsonicSpd * 0.00001f;
|
|
|
-
|
|
|
-// // 一次校准模式
|
|
|
-// if (tof_state & TOF_ST_CALIB)
|
|
|
-// {
|
|
|
-// CumFlow += TmpFloat * pTdcItf->pipe_coe;
|
|
|
-// pTdcItf->check_flow(CumFlow, TmpFloat, WaterTemp);
|
|
|
-// if (tof_flag & TOF_FLAG_CALIB_FLOW)
|
|
|
-// {
|
|
|
-// if (DiffToFAvg2 > 0.5f)
|
|
|
-// {
|
|
|
-// CalibSpdLvl += TmpFloat;
|
|
|
-// CalibTemp += WaterTemp;
|
|
|
-// CalibTime++;
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// tof_flag &= ~TOF_FLAG_CALIB_FLOW;
|
|
|
-// if (CalibTime > CALIB_TIME_LTH)
|
|
|
-// {
|
|
|
-// CalibSpdLvl /= CalibTime;
|
|
|
-// CalibTemp /= CalibTime;
|
|
|
-// tof_flag |= TOF_FLAG_CALIB_FALL;
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// // 正常计量模式
|
|
|
-// DiffToF2Flow(DiffToF);
|
|
|
-// // DiffToF2Flow(DiffToFAvg);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// else
|
|
|
-// {
|
|
|
-// FlowVol = 0; // 始动流量切除时,瞬时流量清零yw2026-6-25
|
|
|
-// }
|
|
|
-// // 串口打印,功能未开启
|
|
|
-// // SERPLOT_PRINT_4FLOAT_1PREAMBLE(DiffToF, UToFAvg, DToFAvg, DiffToFAvg);
|
|
|
-// SERPLOT_PRINT_4FLOAT_1PREAMBLE(DiffToF, DiffToF * UsonicSpd * UsonicSpd * 0.00001f, DToFAvg, DiffToFAvg);
|
|
|
-// }
|
|
|
-// break;
|
|
|
-
|
|
|
-// case (0x02u):
|
|
|
-// tdc_read_cal(TDC_CFG_DO_CKENA);
|
|
|
-// tdc_start_cal(TDC_CFG_DO_CKDIS);
|
|
|
-// TdcIntStep = 0x03u;
|
|
|
-// break;
|
|
|
-
|
|
|
-// case (0x03u):
|
|
|
-// tdc_read_cal(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
|
|
|
-// TdcIntStep = 0xFFu;
|
|
|
-// break;
|
|
|
-
|
|
|
- case (0x04u):
|
|
|
+ pTdcItf->bw_flow_flag = 0;
|
|
|
+ // 空管
|
|
|
+ if (tof_flag & TOF_FLAG_BLANK_PIPE)
|
|
|
+ {
|
|
|
+ // 设置对应德通道为空管
|
|
|
+ pTdcItf->set_blank(ch);
|
|
|
+ // DiffTof from normal channel
|
|
|
+ // 正常的通道进行计量
|
|
|
+ if (pTdcItf->ch_bit_map ^ TdcItf.blank_flag)
|
|
|
+ {
|
|
|
+ DiffToF2Flow(DiffToF);
|
|
|
+ SERPLOT_PRINT_4FLOAT_1PREAMBLE(DiffToF, UToFAvg, DToFAvg, CumFlow);
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 指定通道清除空管
|
|
|
+ pTdcItf->clr_blank(ch);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 计算脉冲宽度
|
|
|
+ Tmp16 = TdcUPwFw - TdcDPwFw;
|
|
|
+ // 判断脉冲宽度有效性
|
|
|
+ if (Tmp16 < (0 - TOF_PWFW_DIFF) || Tmp16 > TOF_PWFW_DIFF)
|
|
|
+ {
|
|
|
+ // 无效脉冲宽度
|
|
|
+ tof_flag |= TOF_FLAG_UNPAIR_WAVE;
|
|
|
+ CntErrEvent++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 有效脉冲宽度
|
|
|
+ tof_flag &= ~TOF_FLAG_UNPAIR_WAVE;
|
|
|
+ // 记录UP和DOWM平均飞行时间
|
|
|
+ UToFAvg = TdcScale * TdcUToF[0];
|
|
|
+ DToFAvg = TdcScale * TdcDToF[0];
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断offset有效性
|
|
|
+ if (TdcFwOfst < TOF_OFST_LOW || TdcFwOfst > TOF_OFST_HIGH)
|
|
|
+ {
|
|
|
+ // out of range
|
|
|
+ TdcFwOfst = (TOF_OFST_LOW + TOF_OFST_HIGH) / 2; // default offset
|
|
|
+ }
|
|
|
+ else if (tof_flag & TOF_FLAG_UNPAIR_WAVE)
|
|
|
+ {
|
|
|
+ // first wave for up and down is different
|
|
|
+ TdcFwOfst += (TdcFwOfst <= (TOF_OFST_LOW + 3)) ? 2 : -2;
|
|
|
+ }
|
|
|
+ else if (TdcUPwFw < TOF_PWFW_LOW && TdcDPwFw < TOF_PWFW_LOW && TdcFwOfst > TOF_OFST_LOW)
|
|
|
+ {
|
|
|
+ TdcFwOfst -= 1;
|
|
|
+ }
|
|
|
+ else if (TdcUPwFw > TOF_PWFW_HIGH && TdcDPwFw > TOF_PWFW_HIGH && TdcFwOfst < TOF_OFST_HIGH)
|
|
|
+ {
|
|
|
+ TdcFwOfst += 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 本次UP和DOWN飞行时间求和
|
|
|
+ SumToF = UToFAvg + DToFAvg; // alomost fixed regardless of water speed
|
|
|
+ // 本次飞行时间和与上次飞行时间和德差值在50内认为有效
|
|
|
+ if (fabsf(SumToF - LastSumToF) < 50.0f)
|
|
|
+ {
|
|
|
+ // 计算飞行时间
|
|
|
+ DiffToF = UToFAvg - DToFAvg - pTdcItf->path_skew[ch];
|
|
|
+ // add by yuewei 20260325 低通平滑滤波
|
|
|
+ // DiffToF = DiffToF * DIFF_TOFF_FILTER_ALPHA + (1 - DIFF_TOFF_FILTER_ALPHA) * DiffToF_LAST;
|
|
|
+
|
|
|
+ // DiffToF = tof_filter(DiffToF);//20260429
|
|
|
+ DiffToF = tof_filter_input_poll(ch, DiffToF);
|
|
|
+ // LOG("ch%d, U=%.6f, D=%.6f\n", ch, UToFAvg, DToFAvg);
|
|
|
+ // LOG("int_cnt=%d, step=%d, ch=%d, DiffToF=%.6f\n\n", int_cnt, get_tdc_int_step(), ch, DiffToF);
|
|
|
+ }
|
|
|
+ // 本次飞行时间和赋值给上次飞行时间和
|
|
|
+ LastSumToF = SumToF;
|
|
|
+
|
|
|
+ if (tof_state & (TOF_ST_METER | TOF_ST_CALIB))
|
|
|
+ {
|
|
|
+ DiffToFAvg += (DiffToF - DiffToFAvg) * (1.0f / 6);
|
|
|
+ DiffToFAvg2 += (DiffToF - DiffToFAvg2) * (1.0f / 2);
|
|
|
+ DiffToFAvg128 += (DiffToF - DiffToFAvg128) * (1.0f / 128);
|
|
|
+ if (tof_flag & TOF_FLAG_VALID_FLOW)
|
|
|
+ {
|
|
|
+ if (fabsf(DiffToFAvg) < 0.35f)
|
|
|
+ {
|
|
|
+ tof_flag &= ~TOF_FLAG_VALID_FLOW;
|
|
|
+ if (tof_state & TOF_ST_CALIB && CalibTime > CALIB_TIME_LTH)
|
|
|
+ {
|
|
|
+ tof_flag |= TOF_FLAG_CALIB_DONE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+
|
|
|
+ // modified by yuewei 20260519,加入n值,始动流量
|
|
|
+ // if (fabsf(DiffToFAvg) > 0.45f || fabsf(DiffToFAvg2) > 1.0f)
|
|
|
+ if (fabsf(DiffToFAvg * 100.00f) > Paramx.n || fabsf(DiffToFAvg2) > 1.0f)
|
|
|
+ {
|
|
|
+ tof_flag |= TOF_FLAG_VALID_FLOW;
|
|
|
+ if (tof_state & TOF_ST_CALIB)
|
|
|
+ {
|
|
|
+ tof_flag |= TOF_FLAG_CALIB_FLOW;
|
|
|
+ CumFlow = 0;
|
|
|
+ CalibTime = 0;
|
|
|
+ CalibSpdLvl = 0;
|
|
|
+ CalibTemp = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 是有效的流量
|
|
|
+ if (tof_flag & TOF_FLAG_VALID_FLOW)
|
|
|
+ {
|
|
|
+ TmpFloat = DiffToF * UsonicSpd * UsonicSpd * 0.00001f;
|
|
|
+
|
|
|
+ // 一次校准模式
|
|
|
+ if (tof_state & TOF_ST_CALIB)
|
|
|
+ {
|
|
|
+ CumFlow += TmpFloat * pTdcItf->pipe_coe;
|
|
|
+ pTdcItf->check_flow(CumFlow, TmpFloat, WaterTemp);
|
|
|
+ if (tof_flag & TOF_FLAG_CALIB_FLOW)
|
|
|
+ {
|
|
|
+ if (DiffToFAvg2 > 0.5f)
|
|
|
+ {
|
|
|
+ CalibSpdLvl += TmpFloat;
|
|
|
+ CalibTemp += WaterTemp;
|
|
|
+ CalibTime++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ tof_flag &= ~TOF_FLAG_CALIB_FLOW;
|
|
|
+ if (CalibTime > CALIB_TIME_LTH)
|
|
|
+ {
|
|
|
+ CalibSpdLvl /= CalibTime;
|
|
|
+ CalibTemp /= CalibTime;
|
|
|
+ tof_flag |= TOF_FLAG_CALIB_FALL;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 正常计量模式
|
|
|
+ DiffToF2Flow(DiffToF);
|
|
|
+ // DiffToF2Flow(DiffToFAvg);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ FlowVol = 0; // 始动流量切除时,瞬时流量清零yw2026-6-25
|
|
|
+ }
|
|
|
+ // 串口打印,功能未开启
|
|
|
+ // SERPLOT_PRINT_4FLOAT_1PREAMBLE(DiffToF, UToFAvg, DToFAvg, DiffToFAvg);
|
|
|
+ SERPLOT_PRINT_4FLOAT_1PREAMBLE(DiffToF, DiffToF * UsonicSpd * UsonicSpd * 0.00001f, DToFAvg, DiffToFAvg);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+void tof_isr_convert_tof_to_flow(void)
|
|
|
+{
|
|
|
+
|
|
|
+ switch (TdcIntStep)
|
|
|
+ {
|
|
|
+ case (0x01u):
|
|
|
+ // 根据RTC_CntInt设置校准、采集温度,读取飞行时间
|
|
|
+ if ((RTC_CntInt & RTC_CNTMSK_CAL) == 0x0u)
|
|
|
+ {
|
|
|
+ // 间隔8秒进行一次校准
|
|
|
+ tdc_start_cal(TDC_CFG_DO_CKENA|TDC_CFG_DO_WREG | TDC_CFG_DO_CKDIS);
|
|
|
+ if (tof_flag & TOF_FLAG_UNALGND_CHOP)
|
|
|
+ {
|
|
|
+ TdcIntStep = 0x03u;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ TdcIntStep = 0x02u;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else if ((RTC_CntInt & RTC_CNTMSK_TEMP) == 0x4u)
|
|
|
+ {
|
|
|
+// // 间隔4秒采集一次温度
|
|
|
+ tdc_start_temp(TDC_CFG_DO_CKENA|TDC_CFG_DO_WREG | TDC_CFG_DO_CKDIS);
|
|
|
+ TdcIntStep = 0x04u;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ // 读取飞行时间
|
|
|
+ tdc_start_tof(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS | TDC_CFG_DO_WREG);
|
|
|
+ TdcIntStep = 0x05u;
|
|
|
+ }
|
|
|
+ break;
|
|
|
|
|
|
+ case (0x02u):
|
|
|
+ tdc_read_cal(TDC_CFG_DO_CKENA);
|
|
|
+ tdc_start_cal(TDC_CFG_DO_CKDIS);
|
|
|
+ TdcIntStep = 0x03u;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case (0x03u):
|
|
|
+ tdc_read_cal(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
|
|
|
+ tdc_start_tof(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS | TDC_CFG_DO_WREG);
|
|
|
+ TdcIntStep = 0x05u;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case (0x04u):
|
|
|
tdc_read_temp(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
|
|
|
+ tdc_start_tof(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS | TDC_CFG_DO_WREG);
|
|
|
+ TdcIntStep = 0x05u;
|
|
|
+ break;
|
|
|
+
|
|
|
+ case (0x05u):
|
|
|
+ tdc_read_tof(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
|
|
|
+ tdoa_filter_convert();
|
|
|
TdcIntStep = 0xFFu;
|
|
|
break;
|
|
|
-
|
|
|
+
|
|
|
case (0x80u):
|
|
|
TdcIntStep = 0xFFu;
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
uint8_t temp_flag=0;
|
|
|
void PORTD_F_IRQHandler(void)
|
|
|
{
|