⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key_io.c

📁 电表解决方案概要power_meter_r8c2g_source_code
💻 C
📖 第 1 页 / 共 2 页
字号:
			 break;
			 
			 default:
			 
			 program_buff = COMMON;
			 led_disp.led_0.byte = 0xfe;
			 
			};
		 
	 }
	 
	else if (process_buff != SWRS)
	 {
		 if (select_soak_flag != 0)
		  {
			  program_count = 0;
			  select_soak_flag = 0;
		  }
		  
		 program_count ++;
		  		 
		 if (program_count == 8)
		 program_count = 0;
		 
		  switch(program_count)
			{
		     case 0:
			 
			 program_buff = COMMON;
			 led_disp.led_0.byte = 0xfe;
			 break;
			 
			 case 1:
			 
			 program_buff = SPEEDY;
			 led_disp.led_0.byte = 0xfd;
			 break;
			 
			 case 2: 
			 
			 program_buff = FASTEST;
			 led_disp.led_0.byte = 0xfb;
			 break;
			 
			 case 3: 
			 
			 program_buff = JEANS;
			 led_disp.led_0.byte = 0xf7;
			 break;
			 
			 case 4: 
			 
			 program_buff = STANDARD;
			 led_disp.led_0.byte = 0xfe;
			 break;
			 
			 case 5: 
			 
			 program_buff = FIBER;
			 led_disp.led_0.byte = 0xfd;
			 break;

			 case 6: 
			 
			 program_buff = COTTON;
			 led_disp.led_0.byte = 0xfb;
			 break;

			 case 7: 
			 
			 program_buff = TUBE_DRY;
			 led_disp.led_0.byte = 0xf7;
			 break;
			 
			 default:
			 
			 program_buff = COMMON;
			 led_disp.led_0.byte = 0xfe;
			 
			};
	 }
	 
	if (program_buff > 3)
	 {
     	program_flash_flag = 1;
	 	led_flash_buff1 = led_disp.led_0.byte;
	 }	
	else 
	program_flash_flag = 0;
	
	if (program_buff == SPEEDY)
	 {
     	process_buff = WRS;
     	pro_led_buff = 0x1f;
     	led_disp.led_2.byte = pro_led_buff;
     	return;
	 }	
	if (program_buff == FASTEST)
	 {
     	select_fastest_flag = 1;
     	water_level_buff = 3;
     	water_count = water_level_buff;
     	led_disp.led_1.byte = 0xf7;
     	water_flash_flag = 0;
		
     	process_buff = WRS;
     	pro_led_buff = 0x1f;
     	led_disp.led_2.byte = pro_led_buff;
		
     	return;
	 }
	if ((select_fastest_flag == 1)&&(program_buff != FASTEST))
	 {
     	select_fastest_flag = 0;
     	water_level_buff = 6;
     	water_count = water_level_buff;
     	led_disp.led_1.byte = 0xfb;
     	led_flash_buff = led_disp.led_1.byte;
     	water_flash_flag = 1;
     	return;
	 }		  		  
	if (program_buff == TUBE_DRY)
	 {
     	select_tube_flag = 1;
     	led_disp.led_1.byte = 0xff;
     	water_flash_flag = 0;
		
     	process_buff = WRS;
     	pro_led_buff = 0x1f;
     	led_disp.led_2.byte = pro_led_buff;
		
     	return;
	 }		  
	if ((select_tube_flag == 1)&&(program_buff != TUBE_DRY))
	 {
     	select_tube_flag = 0;
     	water_level_buff = 6;
     	water_count = water_level_buff;
     	led_disp.led_1.byte = 0xfb;
     	led_flash_buff = led_disp.led_1.byte;
     	water_flash_flag = 1;
     	return;
	 }	
	 		  	 
	return;
}

void key_pro_fun(void)
{
  if ((program_buff == SPEEDY)||(program_buff == FASTEST)||(program_buff == TUBE_DRY))
  
  return;

	if (process_key_falg == 1)
	key_process();
	
	else if (function_key_falg == 1)
	key_function();
	
	pro_led_buff &= 0xf0;
	fun_led_buff &= 0x0f;
	
	led_disp.led_2.byte = pro_led_buff + fun_led_buff;
	
}

void key_process(void)
{
if ((program_buff == FIBER)||(program_buff == COTTON))
 {
  process_count ++;
	
  if (process_count == 4)

    process_count = 0;
	
  switch(process_count)
   {
	 case 0:
			 
	 process_buff = SWRS;
	 pro_led_buff = 0x0f;
	 break;
	 
	 case 1:
			 
	 process_buff = WASH;
	 pro_led_buff = 0xdf;
	 break;
	 
	 case 2:
			 
	 process_buff = RINSE;
	 pro_led_buff = 0xbf;
	 break;
	 
	 case 3:
			 
	 process_buff = SPIN;
	 pro_led_buff = 0x7f;
	 break;
   }; 
 }
else 
 {
  process_count ++;
	
  if (process_count == 6)

    process_count = 0;
	
  switch(process_count)
   {
	 case 0:
			 
	 process_buff = WRS;
	 pro_led_buff = 0x1f;
	 break;
	 
	 case 1:
			 
	 process_buff = WASH;
	 pro_led_buff = 0xdf;
	 break;
	 
	 case 2:
			 
	 process_buff = WR;
	 pro_led_buff = 0x9f;
	 break;
	 
	 case 3:
			 
	 process_buff = RS;
	 pro_led_buff = 0x3f;
	 break;
	 
	 case 4:
			 
	 process_buff = SPIN;
	 pro_led_buff = 0x7f;
	 break;
	 
	 case 5:
			 
	 process_buff = SWRS;
	 pro_led_buff = 0x0f;
	 break;
   };
 }
}

void key_function(void)
{
  function_count ++;
	
  if (function_count == 12)

    function_count = 0;
	
  switch(function_count)
   {
	 case 0:
			 
	 function_buff = EXT_WASH;
	 fun_led_buff = 0xfe;
	 break;
			 
	 case 1:
			 
	 function_buff = EXT_RINSE;
	 fun_led_buff = 0xfd;
	 break;
			 
	 case 2:
			 
	 function_buff = EXT_SPIN;
	 fun_led_buff = 0xfb;
	 break;
			 
	 case 3:
			 
	 function_buff = SOFT_SPIN;
	 fun_led_buff = 0xf7;
	 break;
			 
	 case 4:
			 
	 function_buff = EXT_W_R;
	 fun_led_buff = 0xfc;
	 break;
	 
	 case 5:
			 
	 function_buff = EXT_W_S;
	 fun_led_buff = 0xfa;
	 break;

	 case 6:
			 
	 function_buff = EXT_W_SS;
	 fun_led_buff = 0xf6;
	 break;
	 
	 case 7:
			 
	 function_buff = EXT_R_S;
	 fun_led_buff = 0xf9;
	 break;
	 
	 case 8:
			 
	 function_buff = EXT_R_SS;
	 fun_led_buff = 0xf5;
	 break;
	 
	 case 9:
			 
	 function_buff = EXT_W_R_S;
	 fun_led_buff = 0xf8;
	 break;
	 
	 case 10:
			 
	 function_buff = EXT_W_R_SS;
	 fun_led_buff = 0xf4;
	 break;
	 
	 case 11:
			 
	 fun_led_buff = 0xff;			/* function LED off */
	 break;
	 
	 default:
			 
	 function_buff = EXT_WASH;
	 fun_led_buff = 0xfe;
			 
   };
   
  return;
  
}

void key_water(void)
{
  if (program_buff == FASTEST)
   {
	  water_level_buff = 3;
	  water_count = water_level_buff;
	  led_disp.led_1.byte = 0xf7;
	  water_flash_flag = 0;
	  return;
   }
  else if (program_buff == TUBE_DRY)
   {
	  led_disp.led_1.byte = 0xff;
	  return;
   }
  else if (run_spin_flag == 1)
  return;
   
  water_count ++;				//should be initialized as 5
	
  if (water_count == 11)

    water_count = 1;
	
  switch(water_count)
   {
	 case 1:
	 case 2:
	 water_level_buff = water_count;
	 led_disp.led_1.byte = 0xef;
	 break;
	 
	 case 3:
	 case 4:
	 water_level_buff = water_count;
	 led_disp.led_1.byte = 0xf7;
	 break;
	 
	 case 5:
	 case 6:
	 water_level_buff = water_count;
	 led_disp.led_1.byte = 0xfb;
	 break;
	 
	 case 7:
	 case 8:
	 water_level_buff = water_count;
	 led_disp.led_1.byte = 0xfd;
	 break;
	 
	 case 9:
	 case 10:
	 water_level_buff = water_count;
	 led_disp.led_1.byte = 0xfe;
	 break;
   };
   
  if (!(water_count%2))
   {
     water_flash_flag = 1;
	 led_flash_buff = led_disp.led_1.byte;
   }	
   
  else 
  water_flash_flag = 0;
  
  return;
}

void key_preset(void)
{
	key_preset_normal();
}

void key_preset_normal(void)
{
  preset_count ++;				//should be initialized as 2 ??????
	
  if (preset_count == 25)
   {
     preset_count = 0;
	 preset_3s_buff = 3;
   }
	 
	 if (preset_count == 1)
	 preset_count = 2;
	
	 preset_buff = preset_count;
/*	 
	 if (preset_buff == 0)
	  {
	    if (preset_3s_buff ==0)
	     {
		   preset_3s_buff = 3;
		   led_disp.led_3.byte = seg_led_table[10];
		   led_disp.led_4.byte = seg_led_table[10];
	     }
	   			   
	    else 
	     {
//	       preset_3s_buff = 0x00;
		   led_disp.led_3.byte = seg_led_table[preset_count];
		   led_disp.led_4.byte = seg_led_table[preset_count];
	     }
	  }
   
	 else
      {
	    preset_3s_buff = 0x00;
*/		
		if (preset_count < 10)
		 {
			 led_disp.led_3.byte = seg_led_table[preset_count];
			 led_disp.led_4.byte = seg_led_table[0];
		 }
		if ((preset_count >= 10)&&(preset_count < 20))
		 {
			 led_disp.led_3.byte = seg_led_table[preset_count-10];
			 led_disp.led_4.byte = seg_led_table[0x01];
		 }
		if (preset_count >= 20)
		 {
			 led_disp.led_3.byte = seg_led_table[preset_count-20];
			 led_disp.led_4.byte = seg_led_table[0x02];
		 }
		 
		led_flash_buff3 = led_disp.led_3.byte;
		led_flash_buff4 = led_disp.led_4.byte;		 
//      }
	  
	  return;
}

void key_preset_cont(void)
{
//  if (key_release != 1)
//   {
	 if (preset_500ms_buff == 0)
	   {
		  preset_500ms_buff = 1;
		  preset_count ++;				//should be initialized as 2 ??????
	
  		  if (preset_count == 25)
   		   {
     		  preset_count = 0;
//	 		  preset_3s_buff = 3;
   		   }
	 
	 	  if (preset_count == 1)
	 	  preset_count = 2;
					
		  preset_buff = preset_count;
					
	   }
	   
	 if (preset_count < 10)
		 {
			 led_disp.led_3.byte = seg_led_table[preset_count];
			 led_disp.led_4.byte = seg_led_table[0];
		 }
	 if ((preset_count >= 10)&&(preset_count < 20))
		 {
			 led_disp.led_3.byte = seg_led_table[preset_count-10];
			 led_disp.led_4.byte = seg_led_table[0x01];
		 }
	 if (preset_count >= 20)
		 {
			 led_disp.led_3.byte = seg_led_table[preset_count-20];
			 led_disp.led_4.byte = seg_led_table[0x02];
		 }
		 
	 led_flash_buff3 = led_disp.led_3.byte;
	 led_flash_buff4 = led_disp.led_4.byte;
	   
//   }
   
  return;
  
}
     
     

⌨️ 快捷键说明

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