Prechádzať zdrojové kódy

Signed-off-by: zhuhongbin <kptzhu@163.com>

zhuhongbin 2 rokov pred
rodič
commit
9c034ed678
8 zmenil súbory, kde vykonal 40 pridanie a 36 odobranie
  1. 1 1
      MDK-ARM/RTE/RTOS/rtconfig.h
  2. BIN
      test (6).zip
  3. 2 0
      tmr/buffer.c
  4. 7 7
      tmr/daScreen.c
  5. 11 11
      tmr/display.c
  6. 3 1
      tmr/plan.c
  7. 15 16
      tmr/weight.c
  8. 1 0
      tmr/weight.h

+ 1 - 1
MDK-ARM/RTE/RTOS/rtconfig.h

@@ -119,7 +119,7 @@
 // <h>Console Configuration
 // <c1>Using console
 //  <i>Using console
-#define RT_USING_CONSOLE
+//#define RT_USING_CONSOLE
 // </c>
 // <o>the buffer size of console <1-1024>
 //  <i>the buffer size of console

BIN
test (6).zip


+ 2 - 0
tmr/buffer.c

@@ -434,6 +434,7 @@ void RX(void) {
 																		sendkey1(0xF3, ((XbeeConst_FRxBuf0_Remote[2] >> 4) & 0x0F) );																	
 																		WeightConst_AutoSingleNSecondPoint=0; // 防止自动跳转,重置自动记录指针
 																		WeightConst_oksum = 0;
+ 																	  WeightConst_joksum = 0;
 																		WeightConst_allsum = 0;
 																		button_state.b1=1;  //5秒内不可按键
 																}	
@@ -705,6 +706,7 @@ void RX_Remote(void) {
 																				sendkey1(0xF3, ((XbeeConst_FRxBuf0_Remote[2] >> 4) & 0x0F));
 																				WeightConst_AutoSingleNSecondPoint=0; // 防止自动跳转,重置自动记录指针
 																				WeightConst_oksum = 0;
+																			  WeightConst_joksum = 0;
 																				WeightConst_allsum = 0;
 																				button_state.b1=1;  //5秒内不可按键
 																		}

+ 7 - 7
tmr/daScreen.c

@@ -55,7 +55,7 @@ extern unsigned short WeightConst_productW;  //目标总量
 extern unsigned char WeightConst_feed[]; //原料名称
 extern unsigned char WeightConst_Nextfeed[]; //临时表
 extern signed short WeightConst_NextWeightTarget;      //目标重量
-extern signed long WeightConst_WeightCur;
+extern signed long WeightConst_WeightCurTem;
 extern unsigned char WeightConst_Weight_display[];
 
 extern unsigned char ScreenBuf_Pop(void);
@@ -249,7 +249,7 @@ void display_Total(signed long weight)  //  合计:           500显示当前
 			display_Total_v[13+2+i] = cmd_Sum[i];
 
 		i=35;
-	  Weight_displayW = abs(WeightConst_WeightCur);
+	  Weight_displayW = abs(WeightConst_WeightCurTem);
     if (Weight_displayW==0)
     {
         i--;
@@ -265,7 +265,7 @@ void display_Total(signed long weight)  //  合计:           500显示当前
             }
             else break;
         }
-    if (WeightConst_WeightCur<0) display_Total_v[i-1] = 0x2d;
+    if (WeightConst_WeightCurTem<0) display_Total_v[i-1] = 0x2d;
 
 }
 
@@ -468,7 +468,7 @@ void display_KPT_TMRWatch_weight_()
 			                                   0x20,0x20
                                         };
 		i=47; 
-		Weight_displayW = abs(WeightConst_WeightCur);
+		Weight_displayW = abs(WeightConst_WeightCurTem);
     if (Weight_displayW==0)
     {
         i--;
@@ -484,7 +484,7 @@ void display_KPT_TMRWatch_weight_()
             }
             else break;
         }
-    if (WeightConst_WeightCur<0) KPT_TMRWatch[40] = 0x2d;
+    if (WeightConst_WeightCurTem<0) KPT_TMRWatch[40] = 0x2d;
     display_New_(KPT_TMRWatch, 0x36,
                  0,  // 是否清除
                  1, // 区域数
@@ -616,7 +616,7 @@ void display_Now_(signed long weight)  //               少   30显示当前差
     }
 
     i= 103;
-    Weight_displayW = abs(WeightConst_WeightCur);
+    Weight_displayW = abs(WeightConst_WeightCurTem);
     if (Weight_displayW==0)
     {
         i--;
@@ -632,7 +632,7 @@ void display_Now_(signed long weight)  //               少   30显示当前差
             }
             else break;
         }
-    if (WeightConst_WeightCur<0) KPT_TMRWatch[96] = 0x2d;
+    if (WeightConst_WeightCurTem<0) KPT_TMRWatch[96] = 0x2d;
     if (WeightConst_Run || inMenu==1)
         display_New_(KPT_TMRWatch, 128,
                      0,  // 是否清除

+ 11 - 11
tmr/display.c

@@ -288,7 +288,7 @@ static void MenuDisplay_entry(void *parameter) {
 				}
 				else {
 						display_Current_noweight_();
-						display_Now_(WeightConst_WeightCur);
+						display_Now_(WeightConst_WeightCurTem);
 				}
 		}
 //	  HAL_IWDG_Refresh(&hiwdg);
@@ -377,10 +377,10 @@ void getDisplay(void)
 		else
 		{
 				if (WeightConst_Product_Run>0 && WeightConst_displayTotal==0  && pf_comp.data.pfsort!=0xFE && WeightConst_WeightHaveBegin==1)
-						WeightConst_Weight_displayW = WeightConst_WeightCur - WeightConst_WeightTarget;
+						WeightConst_Weight_displayW = WeightConst_WeightCurTem - WeightConst_WeightTarget;
 				else
-						WeightConst_Weight_displayW = WeightConst_WeightCur;
-        WeightConst_Weight_displayCurW = WeightConst_WeightCur;
+						WeightConst_Weight_displayW = WeightConst_WeightCurTem;
+        WeightConst_Weight_displayCurW = WeightConst_WeightCurTem;
 				for (int SendDisplay_i = 0; SendDisplay_i < 8; SendDisplay_i++)   //ÏÔÊ¾ÖØÁ¿
 						WeightConst_Weight_display[SendDisplay_i]=0x20;	
 
@@ -799,11 +799,11 @@ static void Display_entry(void *parameter) {
 						{
 							if (isn>=1)
 							{
-								display_Now_(WeightConst_WeightCur);
+								display_Now_(WeightConst_WeightCurTem);
 							}
 							else{							
 								display_Now();
-								display_Total(WeightConst_WeightCur);
+								display_Total(WeightConst_WeightCurTem);
 								row++;
 								if (row%rowx==0){
 									for (int j=0; j<39; j++)	uart4_send_data[j] = display_productName_v[j];
@@ -872,12 +872,12 @@ static void Display_entry(void *parameter) {
                 signed long WeightConst_WeightCur_ = 0;		
 								uart4_send_data[0]=0x20;uart4_send_data[1]=0x20;uart4_send_data[2]=0x20;
 								uart4_send_data[3]=0x20;uart4_send_data[4]=0x30;	
-                if 	(WeightConst_WeightCur<0)
+                if 	(WeightConst_WeightCurTem<0)
 								{									
-									 WeightConst_WeightCur_ = WeightConst_WeightCur*-1;
+									 WeightConst_WeightCur_ = WeightConst_WeightCurTem*-1;
 									 uart4_send_data[0] = 0x2D;
 								}
-                else 	WeightConst_WeightCur_ = WeightConst_WeightCur;			
+                else 	WeightConst_WeightCur_ = WeightConst_WeightCurTem;			
 								
 								
 								for (int SendDisplay_i = 0; SendDisplay_i < 5; SendDisplay_i++) {
@@ -1043,9 +1043,9 @@ static void Display_entry(void *parameter) {
 									else if (WeightConst_WeightCur>(WeightConst_WeightTargetTemp+WeightConst_WeightTarget) &&  pf_comp.data.addorout==1)
                     tempw=0;
                   else if (pf_comp.data.addorout==0)									
-									 tempw = ( WeightConst_WeightCur-(WeightConst_WeightTarget-WeightConst_WeightTargetTemp));
+									 tempw = ( WeightConst_WeightCurTem-(WeightConst_WeightTarget-WeightConst_WeightTargetTemp));
 									else 
-										tempw = ((WeightConst_WeightTarget+WeightConst_WeightTargetTemp)-WeightConst_WeightCur);
+										tempw = ((WeightConst_WeightTarget+WeightConst_WeightTargetTemp)-WeightConst_WeightCurTem);
 								  uart4_send_data[0]=tempw*100/WeightConst_WeightTargetTemp;
 								
 						

+ 3 - 1
tmr/plan.c

@@ -351,7 +351,8 @@ void pop_product_entry(void *parameter) {
 										WeightConst_DELAYON = 0;
 										HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR4, WeightConst_DELAYON);	
 										CanButton = 0x01;
-										WeightConst_oksum=0;
+										WeightConst_oksum=0;										
+				          	WeightConst_joksum = 0;
 					          WeightConst_WeightOK = -32760;
 
 										if (pf_comp.data.firstReget)	{
@@ -609,6 +610,7 @@ void getTargetWeight(void)
 		
     WeightConst_AutoSingleNSecondPoint=0;
     WeightConst_oksum = 0;
+		WeightConst_joksum = 0;
     WeightConst_allsum = 0;
 
 		if (isTag==1)

+ 15 - 16
tmr/weight.c

@@ -45,6 +45,7 @@ static signed short WeightConst_WeightCur_last3=0;
 
 static long WeightConst_WeightSum = 0;  //当前重量总和
 unsigned char WeightConst_oksum = 0;     //符合目标重量数
+unsigned char WeightConst_joksum = 0;     //符合目标重量数
 unsigned char WeightConst_allsum = 0;    //总重量值数
 static unsigned char WeightConst_uoksum = 0;
 static unsigned char WeightConst_foksum = 0;
@@ -161,7 +162,10 @@ static void setWeightSM() {  // 
                 WeightConst_oksum++;
                 WeightConst_WeightOK=WeightConst_WeightCurTem;
             }
-
+              
+						if (WeightConst_WeightCurTem > WeightConst_WeightTargetAllowMax)
+							 WeightConst_joksum++;
+					
             //WeightConst_WeightTargetAllow
             if ((WeightConst_WeightCurTem>WeightConst_WeightTargetAllowMin && pf_comp.data.addorout==0)
                     ||(WeightConst_WeightCurTem<WeightConst_WeightTargetAllowMin && pf_comp.data.addorout==1))
@@ -267,7 +271,10 @@ void CheckWeightthread(void) {
 				if (WeightConst_WeightCount>0)
           WeightConst_WeightCur = WeightConst_WeightSum / WeightConst_WeightCount;
 		  	
-				
+				WeightConst_WeightSum = 0;
+				WeightConst_WeightCount = 0;        //重量数
+				WeightConst_WeightMax = -32768;         //最大重量
+				WeightConst_WeightMin = 32767;     //最小重量
         if (WeightConst_WeightCurCount >= 0x0F) {  //15秒准备发送后台重
 					  rt_sem_take(setTIME_lock, RT_WAITING_FOREVER);
 					  timeweight.Buffer[3] =TimeConst.Buffer[0];
@@ -293,22 +300,12 @@ void CheckWeightthread(void) {
         }
 				rt_sem_release(weight_lock);
 				if (WeightConst_Product_Run > 0) {
-					if (WeightConst_AutoSingleNSecondPoint>=pf_comp.data.autosecond || WeightConst_AutoSingleNSecondPoint>=30)
+					if (WeightConst_AutoSingleNSecondPoint >= (pf_comp.data.autosecond * 3)  || WeightConst_AutoSingleNSecondPoint>=30)
 							WeightConst_AutoSingleNSecondPoint = 0;
 
 					WeightConst_AutoSingleNSecondNum[WeightConst_AutoSingleNSecondPoint][0] = WeightConst_oksum;
 					WeightConst_AutoSingleNSecondNum[WeightConst_AutoSingleNSecondPoint][1] = WeightConst_allsum;
-					if (//( WeightConst_WeightMax - WeightConst_WeightMin)>WeightConst_WeightTargetAllow && 
-							 WeightConst_WeightCur > WeightConst_WeightTargetAllowMax
-									&&  pf_comp.data.autosecond>0 &&  WeightConst_WeightHaveBegin==1)
-							WeightConst_AutoSingleNSecondNum[WeightConst_AutoSingleNSecondPoint][2] = 1;
-					else
-							WeightConst_AutoSingleNSecondNum[WeightConst_AutoSingleNSecondPoint][2] = 0;
-
-					WeightConst_WeightSum = 0;
-					WeightConst_WeightCount = 0;        //重量数
-					WeightConst_WeightMax = -32768;         //最大重量
-					WeightConst_WeightMin = 32767;     //最小重量
+					WeightConst_AutoSingleNSecondNum[WeightConst_AutoSingleNSecondPoint][2] = WeightConst_joksum;		
 
 					WeightConst_AutoSingleNSecondPoint++;
 
@@ -316,7 +313,7 @@ void CheckWeightthread(void) {
 					WeightConst_uallsum = 0;
 					WeightConst_foksum = 0;
 
-					for (int CheckWeight_i = 0; CheckWeight_i < pf_comp.data.autosecond; CheckWeight_i++) {
+					for (int CheckWeight_i = 0; CheckWeight_i < (pf_comp.data.autosecond * 3); CheckWeight_i++) {
 							WeightConst_uoksum = WeightConst_uoksum + WeightConst_AutoSingleNSecondNum[CheckWeight_i][0];
 							WeightConst_uallsum = WeightConst_uallsum + WeightConst_AutoSingleNSecondNum[CheckWeight_i][1];
 							WeightConst_foksum = WeightConst_foksum + WeightConst_AutoSingleNSecondNum[CheckWeight_i][2];
@@ -347,11 +344,13 @@ void CheckWeightthread(void) {
 					}
 
 					WeightConst_oksum = 0;
+					WeightConst_joksum = 0;
 					WeightConst_allsum = 0;
 					WeightConst_uoksum = 0;
 					WeightConst_uallsum = 0;
 					WeightConst_foksum = 0;
 				 // sendWeight(); //检查是否需要保存实时重量
+
 				}
 		  }
 			WeightConst_WeightCurCount++;
@@ -370,7 +369,7 @@ void CheckWeightthread(void) {
 			//		WeightConst_Product_Run_time = 0;
 				HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR3, WeightConst_Product_Run_time);	
 			}
-			rt_thread_mdelay(998);
+			rt_thread_mdelay(1000);
     }
 }
 

+ 1 - 0
tmr/weight.h

@@ -70,6 +70,7 @@ extern signed short WeightConst_WeightLast;   //
  
 
 extern unsigned char WeightConst_oksum;     //符合目标重量数
+extern unsigned char WeightConst_joksum;     //符合目标重量数
 extern unsigned char WeightConst_allsum;    //总重量值数
 extern signed short WeightConst_WeightOK;