Selaa lähdekoodia

临时显示温度

HBR 10 tuntia sitten
vanhempi
commit
61b73b9960
3 muutettua tiedostoa jossa 28 lisäystä ja 25 poistoa
  1. 2 1
      Users/rtc_isr.c
  2. 18 16
      Users/tdc_tof/tdc_ms1030.c
  3. 8 8
      Users/tdc_tof/tof_isr.c

+ 2 - 1
Users/rtc_isr.c

@@ -216,7 +216,8 @@ void rtc_interrupt_deal_tdc(void)
                 tof_flag |= TOF_FLAG_TDC_FAULT;
             }
 
-            TdcIntStep = 0x01;
+            TdcIntStep=0x04;
+            tdc_start_temp(TDC_CFG_DO_CKENA|TDC_CFG_DO_WREG | TDC_CFG_DO_CKDIS);
 //	        tdc_start_cal(TDC_CFG_DO_CKENA|TDC_CFG_DO_WREG | TDC_CFG_DO_CKDIS);
 //            tdc_start_tof(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS | TDC_CFG_DO_WREG);
 			

+ 18 - 16
Users/tdc_tof/tdc_ms1030.c

@@ -4,7 +4,7 @@
 #define ANZ_FIRE 		12u//fire发送脉冲数
 #define DIV_FIRE 		3u	//内部时钟产生脉冲的分频
 #define DIV_CLKHS 	    0u	//高速时钟分频
-#define START_CLKHS     0u	//高速启动后测量前晶振启动间隔时间,120us
+#define START_CLKHS     2u	//高速启动后测量前晶振启动间隔时间,120us
 #define NEG_START  	    0u	//start通道边缘
 #define NEG_STOP		0u	//stop通道边缘
 #define HITIN			9u	//stop预期脉冲数
@@ -24,12 +24,12 @@
                       
 
 
-#define EN_INT_TO       0  //TIMOUT中断触发位
+#define EN_INT_TO       1  //TIMOUT中断触发位
 #define EN_INT_HIT      0  //END HITS中断触发位
-#define EN_INT_ALU      0  //alu中断触发位
+#define EN_INT_ALU      1  //alu中断触发位
 #define RFEDGE          0  //stop通道边沿敏感性
-#define UP_DELVAL1      0  //当EN_FIST_WAVE=1时,为第一波屏蔽窗口 BIT12~27  暂未设置
-#define OFFSET          0	//当en_hc=1时, 62~-64mV   暂未设置
+#define UP_DELVAL1      200  //当EN_FIST_WAVE=1时,为第一波屏蔽窗口 BIT12~27  暂未设置
+#define OFFSET          30	//当en_hc=1时, 62~-64mV   暂未设置
 #define DFLT_WREG1   (( EN_INT_TO<<31)  | \
                       ( EN_INT_HIT<<30) | \
                       ( EN_INT_ALU<<29) | \
@@ -38,14 +38,15 @@
                       ( OFFSET<< 0))
                       
 
-#define EN_FIRST_WAVE	    0u	//BIT31, 为1时后面的定义有效
+#define EN_FIRST_WAVE	    1u	//BIT31, 为1时后面的定义有效
 #define EDGE_FW				0u	//第一波边缘敏感性
 #define DELREL1				6u	//第1个stop接收第几个回波周期
 #define DELREL2				8u	//第2个stop接收第几个回波周期
 #define DELREL3				10u	//第3个stop接收第几个回波周期
 #define DELREL4				12u	//第4个stop接收第几个回波周期
 #define DELREL5				14u	//第5个stop接收第几个回波周期
-#define DFLT_WREG2   ((EDGE_FW<<30) | \
+#define DFLT_WREG2    ((EN_FIRST_WAVE<<31)| \
+                      (EDGE_FW<<30) | \
                       (DELREL1<<24) | \
                       (DELREL2<<18) | \
                       (DELREL3<<12) | \
@@ -57,20 +58,20 @@
 #define DELREL6				16u	//第3个stop接收第几个回波周期
 #define DELREL7				18u	//第4个stop接收第几个回波周期
 #define DELREL8				20u	//第5个stop接收第几个回波周期
-#define DIS_PW              1u	//关闭脉冲宽度测量功能,0=开启
-#define WAVE_OFFS           0u	//第一波比较器偏置电压:EN_HC = 0 -64mV~63mV,10mv
+//#define DIS_PW              0u	//关闭脉冲宽度测量功能,0=开启
+//#define WAVE_OFFS           16u	//第一波比较器偏置电压:EN_HC = 0 -64mV~63mV,10mv
 #define DFLT_WREG3   ((DELREL6<<26) | \
                       (DELREL7<<20) | \
-                      (DELREL8<<14) | \
-                      (DIS_PW<<13)  | \
-                      (WAVE_OFFS<<6))
+                      (DELREL8<<14))
+//                      (DIS_PW<<13)  | \
+//                      (WAVE_OFFS<<6))
                       
                             
 #define CONF_FIRE			2		//脉冲触发器的输出设置,暂时设置为0 bit29~31
 #define PHASE_FIREUP		0       //FIREUP反向设置
 #define PHASE_FIREDOWN	    0       //FIREDOWN反向设置
 #define SEL_START_FIRE	    1       //FIRE脉冲用作触发TDCSTART
-#define EN_ANALOG			0       //模拟测量控制开关
+#define EN_ANALOG			1       //模拟测量控制开关
 #define HZ60				0       //顺流测量和逆流测量的时间单位
 #define TCYCLE				1       //温度测量循环时间
 #define ANZ_FAKE			1       //温度测量热身次数,0:两次热身,1:7次热身
@@ -83,7 +84,7 @@
 #define EN_DC				0		//stop端口充电模式 这里设置为直流  1030不同
 #define FIRE0_DEF			1       //fire通道默认状态,fire通道默认电平
 #define DOUBLE_RES			0       //双精度模式
-#define QUAD_RES			0       //4精度模式
+#define QUAD_RES			1       //4精度模式
 #define DFLT_WREG4   (( CONF_FIRE<<29) | \
                       ( PHASE_FIREUP<<28) | \
                       ( PHASE_FIREDOWN<<27) | \
@@ -115,10 +116,11 @@
 #define SEL_SRC_CLK		(0<<7)  //选择高速时钟输入源
 #define EN_HC			(0<<6)  //比较器调节步长
 #define CURR32K			(0<<5)  //32K晶振功耗设置
-#define DIS_Vref		(1<<4)  //基准电压输出控制
+#define DIS_Vref		(0<<4)  //基准电压输出控制
 #define ADJ_LDO_ROUGH	(0<<3)  //内部LDO输出粗调
 #define ADJ_LDO_FINE	(4<<0)	//内部LDO输出细调
 #define DFLT_WREG6 (DOWN_DELVAL1|SEL_SRC_CLK|EN_HC|CURR32K|DIS_Vref|ADJ_LDO_ROUGH|ADJ_LDO_FINE)
+            
 
 uint16_t tof_state = TOF_ST_INIT;
 uint32_t tof_flag;
@@ -425,7 +427,7 @@ void tdc_read_temp(uint32_t cfg)
 
     if(TdcPT[0]==0xffffffff || TdcPT[1]==0xffffffff || TdcPT[0] ==0x00000000 || TdcPT[0]==0x00000000)
     {
-        
+        TdcResist=0;
     }
     else
     {

+ 8 - 8
Users/tdc_tof/tof_isr.c

@@ -255,7 +255,7 @@ void tof_isr_convert_tof_to_flow(void)
 //                TdcIntStep = 0x02u;
 //            }
 //        }
-//          else if ((RTC_CntInt & RTC_CNTMSK_TEMP) == 0x4u)
+//          if ((RTC_CntInt & RTC_CNTMSK_TEMP) == 0x4u)
 //        {
 //            // 间隔4秒采集一次温度
 //            tdc_read_tof(TDC_CFG_DO_CKENA);
@@ -265,8 +265,8 @@ void tof_isr_convert_tof_to_flow(void)
 //        else
 //        {
             // 读取飞行时间
-            tdc_read_tof(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
-            TdcIntStep = 0xFFu;
+//            tdc_read_tof(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
+//            TdcIntStep = 0xFFu;
 //        }
 
         //            LOG("ch-%d-1-U:%.6f-D:%.6f\n\n", ch, TdcScale*TdcUToF[0],TdcScale*TdcDToF[0]);
@@ -451,11 +451,11 @@ void tof_isr_convert_tof_to_flow(void)
 //        TdcIntStep = 0xFFu;
 //        break;
 
-//    case (0x04u):
-//        
-//        tdc_read_temp(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
-//        TdcIntStep = 0xFFu;
-//        break;
+    case (0x04u):
+        
+        tdc_read_temp(TDC_CFG_DO_CKENA | TDC_CFG_DO_CKDIS);
+        TdcIntStep = 0xFFu;
+        break;
 
     case (0x80u):
         TdcIntStep = 0xFFu;