operation_a.c

来自「电表解决方案概要power_meter_r8c2g_source_code」· C语言 代码 · 共 2,111 行 · 第 1/4 页

C
2,111
字号
			  inlet(Standard_Time_Table[operation_counter], 0xaa, 0);		// ?????????
			  spin(Memo_Time_Table[operation_counter]);			  
			  break;			  
			  
			  case 8: 				 /* 计数值为8时,执行脱水过程 */ 
			  spin(Memo_Time_Table[operation_counter]);  			 // ???? spin program need add parameter 
			  break;
			  
			  
			  case 9: 		 		 /* 计数值为9时,执行喷淋脱水过程 */
			  
			  inlet(Standard_Time_Table[operation_counter], 0xaa, 0);		// ?????????
			  spin(Memo_Time_Table[operation_counter]);			  
			  break;	
			  
			  
			  case 10: 			  	/* 计数值为10时,执行脱水过程 */
			  spin(Memo_Time_Table[operation_counter]);  	// ???? spin program need add parameter 
			  break;
			  
			  
			  case 14:  	  		/* 计数值为14时,执行蓄水漂洗过程 */
			  wash(Memo_Time_Table[operation_counter]);
			  			  
			  if (operation_counter == 16)
			   {
				   rinse_flash_flag = 0;	  
			   }		  
			  break;
			  			  			  			  
			  
			  case 1:  				/* 计数值为1时,执行浸泡过程 */
			  
			  soak_flash_flag = 1;
			  process_buff = Soak;
			  
			  soak(main_soak_time);
			  
			  if (operation_counter == 2)
			   {
				   soak_flash_flag = 0;	
				   led_disp.led_2.byte &= 0xef;	
			   }		  			  
			  break;
			  
			  case 2:  		 		/* 计数值为2时,执行洗涤过程 */
			  
			  wash_flash_flag = 1;
			  process_buff = Wash;
			  
			  wash(main_wash_time * 60);
			  
			  if (operation_counter == 4)
			   {
				   wash_flash_flag = 0;	  
				   led_disp.led_2.byte &= 0xdf;
			   }		  
			  break;
			  
			  case 4:   		 	/* 计数值为4时,执行排水过程 */
			  rinse_flash_flag = 1;
			  process_buff = Rinse;
			  
			  drain();
			  break;
			  
			  
			  case 16:   		    /* 计数值为16时,判断是否运行留水 */
			  if((release_save_water_flag == 0)&&(confirm_save_water_flag == 1))
			   {
				   if(save_water_once_flag == 0)
				    {
				   		run_save_water_flag = 1;			
				   		return;	     /* 留水运行时,返回 */
				    }
			   }			   
			  spin_flash_flag = 1;	
			  process_buff = Spin;
			  		   
			  drain();		  		 /* 留水释放后,继续排水过程 */
			  break;			  
			  
			  
			  case 17:  interm_spin(Standard_Time_Table[operation_counter]);
			  break;		 		 /* 计数值为6时,执行脱水过程 */
			  
			  case 18: 
			  
			  if (spin_time_buff == 6)	  /* 未设定脱水时间,用数据表默认值 */	  
			  spin(Standard_Time_Table[operation_counter] * 60);
			  
			  if (spin_time_buff != 6)
			  spin(spin_time_buff * 60);	  /* 已设定脱水时间,用设定值 */
			  			  			  
			  if (operation_counter == 21)
			   {
				   spin_flash_flag = 0;
			   }
			  break;
			  
		  };
		  
		return;
		 
	 }
	 
	else
	operation_counter ++;	  /* 对应程序表时间为0,则计数加1 */
	return;
  }
 else if (operation_counter == 21)	  /* 当计数值 = 21 时,程序运行结束 */
  {
	  operation_counter = 0;
	  first_count_flag = 1;
	  status_buff = STAND_BY;
  }
}

/******************************************************************************************

void memo_program(void): 记忆程序运行处理

程序运行根据operation_counter的值判定某一时刻该执行何种对应过程,
和标准及其他程序控制方式类似

******************************************************************************************/

void memo_program(void)				// modified from jeans_program
{
 if (operation_counter < 25)
  {		
	if (Memo_Time_Table[operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0:  
			  process_buff = Inlet;			  
			  case 9:
			  case 17: inlet(Memo_Time_Table[operation_counter], 0, water_level_buff); 
			  break;
			  
			  case 1:  
			  
			  soak_flash_flag = 1;
			  process_buff = Soak;
			  
			  soak(main_soak_time);
			  
			  if (operation_counter == 2)
			   {
				   soak_flash_flag = 0;	
				   led_disp.led_2.byte &= 0xef;	
			   }		  			  			  
			  break;
			  
			  case 2:  
			  
			  wash_flash_flag = 1;
			  process_buff = Wash;
			  
			  wash(main_wash_time * 60);
			  
			  if (operation_counter == 4)
			   {
				   wash_flash_flag = 0;	  
				   led_disp.led_2.byte &= 0xdf;
			   }		  			  
			  break;
			  
			  case 10:
			  case 18: wash(Memo_Time_Table[operation_counter]);
			  if (operation_counter == 20)
			   {
				   rinse_flash_flag = 0;
				   led_disp.led_2.byte &= 0xbf;	
			   }	  			  			  			  
			  break;
			  
			  
			  case 4:    
			  rinse_flash_flag = 1;
			  process_buff = Rinse;
			  
			  drain();	
			  break;
			  
			  			  
			  case 12:			      /* 计数值为12时,判断是否运行留水 */
			  if((release_save_water_flag == 0)&&(confirm_save_water_flag == 1))
			   {
				   if(save_water_once_flag == 0)
				    {
				   		if ((save_water_num_buff == 0)||(save_water_num_buff == 2))
				    	{
				   			run_save_water_flag = 1;			
				   			return;	   
				    	}	
					}			   			   
			   }			  
//			  rinse_flash_flag = 1;
			  drain();		
			  break;
			  
			  			  
			  case 20:    			 /* 计数值为20时,判断是否运行留水 */
			  if((release_save_water_flag == 0)&&(confirm_save_water_flag == 1))
			   {
				   if(save_water_once_flag == 0)
				    {				   
				   		if ((save_water_num_buff == 1)||(save_water_num_buff ==2))
				    	{
				   			run_save_water_flag = 1;			
				   			return;	   
				    	}	
					}			   
			   }	  
			  spin_flash_flag = 1;
			  process_buff = Spin;
			  
			  drain();
			  break;
			  
			  
			  case 5:  
			  case 13:
			  case 21: interm_spin(Memo_Time_Table[operation_counter]);
			  break;
			  
			  
			  case 6:				  
			  case 14:
			  spin(Memo_Time_Table[operation_counter]);
			  break;
			  			  
						  
			  case 22: 
			  
			  if (spin_time_buff == 6)			  
			  spin(Standard_Time_Table[operation_counter] * 60);
			  
			  if (spin_time_buff != 6)
			  spin(spin_time_buff * 60);			  			  

			  if (operation_counter == 25)
			   {
				   spin_flash_flag = 0;
			   }
			  break;
		  };
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
  }
 else if (operation_counter == 25)
  {
	  operation_counter = 0;
	  first_count_flag = 1;	  
	  status_buff = STAND_BY;
  }
}

/******************************************************************************************

void strong_program(void): 记忆程序运行处理

程序运行根据operation_counter的值判定某一时刻该执行何种对应过程,
和标准及其他程序控制方式类似

******************************************************************************************/

void strong_program(void)			// modified from fiber_program
{
 if (operation_counter < 23)
  {		
	if (Strong_Time_Table[operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0:  
			  process_buff = Inlet;
			  case 9:
			  case 16: inlet(Strong_Time_Table[operation_counter], 0, water_level_buff); 
			  break;
			  
			  case 1:  
			  
			  soak_flash_flag = 1;
			  process_buff = Soak;
			  
			  soak(main_soak_time);
			  
			  if (operation_counter == 2)
			   {
				   soak_flash_flag = 0;	
				   led_disp.led_2.byte &= 0xef;	
			   }		  			  			  			  
			  break;
			  
			  case 2:  
			  
			  wash_flash_flag = 1;
			  process_buff = Wash;
			  
			  wash(main_wash_time * 60);
			  
			  if (operation_counter == 4)
			   {
				   wash_flash_flag = 0;	  
				   led_disp.led_2.byte &= 0xdf;
			   }		  			  			  
			  break;
			  
			  case 10:
			  case 17: 
			  
			  wash(Strong_Time_Table[operation_counter]);			  
			  if (run_stream_time == 0)
			   {
				   balance_time_buff = 0;	//  ????????? good sample for spin processing
				   operation_counter -- ;	//  ????????? need considering which is better
			   }
			  if (operation_counter == 18)
			   {
				   rinse_flash_flag = 0;
			   }	  			  			  			  			  
			  break;
			  
			  
			  case 4:  
			  rinse_flash_flag = 1;
			  process_buff = Rinse;
			  
			  drain();
			  break;
			  			  			  
			  case 11:   			 /* 计数值为11时,判断是否运行留水 */
			  if((release_save_water_flag == 0)&&(confirm_save_water_flag == 1))		  
			   {
				   if(save_water_once_flag == 0)
				    {				   
				   		if ((save_water_num_buff == 0)||(save_water_num_buff ==2))
				    	{
				   			run_save_water_flag = 1;			
				   			return;	   
				    	}	
					}			   
			   }	  			   
			  rinse_flash_flag = 1;
			  drain();
			  break;
			  
			  case 18:   			  /* 计数值为18时,判断是否运行留水 */
			  if((release_save_water_flag == 0)&&(confirm_save_water_flag == 1))	
			   {
				   if(save_water_once_flag == 0)
				    {				   
				   		if ((save_water_num_buff == 1)||(save_water_num_buff ==2))
				    	{
				   			run_save_water_flag = 1;			
				   			return;	   
				    	}	
					}			   
			   }	  			   			   
			  spin_flash_flag = 1;
			  process_buff = Spin;
			  
			  drain();
			  break;
			  
			  case 5:  
			  case 12:
			  case 19: interm_spin(Strong_Time_Table[operation_counter]);
			  break;
			  
			  case 6: 
			  case 13:
			  spin(Strong_Time_Table[operation_counter]);
			  break;			  
			  
			  case 20: 

			  if (spin_time_buff == 6)			  
			  spin(Standard_Time_Table[operation_counter] * 60);
			  
			  if (spin_time_buff != 6)
			  spin(spin_time_buff * 60);					  
			  
			  if (operation_counter == 23)
			   {
				   spin_flash_flag = 0;
				   led_disp.led_2.byte &= 0x7f;
			   }
			  break;
		  };
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
  }
 else if (operation_counter == 23)
  {
	  operation_counter = 0;
	  first_count_flag = 1;	  
	  status_buff = STAND_BY;
  }
}

/******************************************************************************************
void silk_program(void): 记忆程序运行处理

程序运行根据operation_counter的值判定某一时刻该执行何种对应过程,
和标准及其他程序控制方式类似

******************************************************************************************/

void silk_program(void)			// use new
{
 if (operation_counter < 21)
  {		
	if (Silk_Time_Table[operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0:  
			  process_buff = Spin;
			  case 7:
			  case 14: inlet(Silk_Time_Table[operation_counter], 0, water_level_buff); 
			  break;
			  
			  
			  case 1:  
			  
			  wash_flash_flag = 1;
			  process_buff = Wash;
			  
			  wash(main_wash_time * 60);
			  if (run_stream_time == 0)
			   {
				   balance_time_buff = 0;	//  ????????? good sample for spin processing
				   operation_counter -- ;	//  ????????? need considering which is better
			   }			  
			   
			  if (operation_counter == 2)
			   {
				   wash_flash_flag = 0;	  
			   }		  			  			  
			  break;
			  
			  case 8:
			  case 15: 
			  
			  wash(Silk_Time_Table[operation_counter]);
			  if (run_stream_time == 0)
			   {
				   balance_time_buff = 0;	//  ????????? good sample for spin processing
				   operation_counter -- ;	//  ????????? need considering which is better
			   }	

			  if (operation_counter == 18)
			   {
				   rinse_flash_flag = 0;
				   led_disp.led_2.byte &= 0xbf;	
			   }	  			  			  			  			  
			  break;
			  
			  case 2:  
			  rinse_flash_flag = 1;
			  process_buff = Rinse;
			  
			  drain();
			  break;			  
			  
			  case 9:  				  /* 计数值为9时,判断是否运行留水 */
			  if((release_save_water_flag == 0)&&(confirm_save_water_flag == 1))
			   {
				   if(save_water_once_flag == 0)
				    {				   
				   		if ((save_water_num_buff == 0)||(save_water_num_buff ==2))
				    	{
				   			run_save_water_flag = 1;			
				   			return;	   
				    	}	
					}			   
			   }	  			   			   				  
			  rinse_flash_flag = 1;
			  drain();
			  break;
			  
			  case 16:  			   /* 计数值为16时,判断是否运行留水 */
			  if((release_save_water_flag == 0)&&(confirm_save_water_flag == 1))	
			   {
				   if(save_water_once_flag == 0)
				    {				   
				   		if ((save_water_num_buff == 1)||(save_water_num_buff ==2))
				    	{
				   			run_save_water_flag = 1;			
				   			return;	   
				    	}	
					}			   
			   }	  			   	
			  spin_flash_flag = 1;
			  process_buff = Spin;
			  
			  drain();
			  break;
			  
			  case 3:  
			  case 10:
			  case 17: interm_spin(Silk_Time_Table[operation_counter]);
			  break;
			  
			  case 4: 
			  case 11:
			  spin(Silk_Time_Table[operation_counter]);
			  break;
			  		  
			  case 18: 
			  
			  if (spin_time_buff == 6)			  

⌨️ 快捷键说明

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