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

📄 operation_b.i

📁 电表解决方案概要power_meter_r8c2g_source_code
💻 I
📖 第 1 页 / 共 3 页
字号:
union{
	struct{
		char	b0:1;
		char	b1:1;
		char	b2:1;
		char	b3:1;
		char	b4:1;
		char	b5:1;
		char	b6:1;
		char	b7:1;
		char	b8:1;
		char	b9:1;
		char	b10:1;
		char	b11:1;
		char	b12:1;
		char	b13:1;
		char	b14:1;
		char	b15:1;
		char	b16:1;
		char	b17:1;
		char	b18:1;
		char	b19:1;
	} bit;
	struct{
		char	low;								 
		char	mid;								 
		char	high;								 
		char	nc;									 
	} byte;

	unsigned long	dword;
} rmad0_addr,rmad1_addr;











union{
	struct{
		char	b0:1;
		char	b1:1;
		char	b2:1;
		char	b3:1;
		char	b4:1;
		char	b5:1;
		char	b6:1;
		char	b7:1;
		char	b8:1;
		char	b9:1;
		char	b10:1;
		char	b11:1;
		char	b12:1;
		char	b13:1;
		char	b14:1;
		char	b15:1;
	} bit;
	struct{
		char	low;								 
		char	high;								 
	} byte;
	unsigned int	word;
} u0tb_addr, u1tb_addr, u2tb_addr, ad0_addr;

















#line 3 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/operation_b.c"

#line 1 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/main.h"



extern	void wash_init(void);
extern	void init(void);
extern	void key(void);
extern	void buzz(void);
extern	void buzz_power(void);

extern	void led(void);

extern	void inertial(void);

extern	void key_led(void);
extern	void key_logic(void);
extern	void key_power(void);
extern	void key_start(void);
extern	void key_program(void);
extern	void key_function(void);
extern	void key_pro_fun(void);
extern	void key_process(void);
extern	void key_water(void);
extern	void key_preset(void);
extern	void key_preset_normal(void);
extern	void key_preset_cont(void);

extern	void logic(void);
extern	void operation(void);
extern	void status(void);
extern	void inlet(unsigned char, unsigned char, unsigned char);
extern	void soak(unsigned int);
extern	void wash(unsigned int);
extern	void drain(void); 
extern	void interm_spin(unsigned int);
extern	void spin(unsigned int);
extern	void run_stream(void);
extern	void stream_moto(unsigned int, unsigned int);

extern	void weight_test(void);
extern	void texture_test(void);

extern	void test_no_water(void);
extern	void test_production(void);
extern	void test_cycle(void);
extern	void test_interm_spin(void);
extern	void test_weight(void);

extern	void cotton_program(void);
extern	void tubedry_program(void);
extern	void fiber_program(void);
extern	void standard_program(void);
extern	void jeans_program(void);
extern	void fastest_program(void);
extern	void speedy_program(void);
extern	void common_program(void);

extern	void input(void);
extern	void output(void);

extern	unsigned char program_time(unsigned char);


 












 
 










































			









 




















 

 



 
 
 
 


 
	








 







 
 
 

 
 
 






















 

 







 

extern  signed char scan_buff;
extern  unsigned char scan_loop;
extern  unsigned char scan_count;

extern  signed char led_scan_buff;

extern  unsigned char base_5ms_buff;
extern  unsigned char base_500ms_buff;
extern  unsigned char base_1s_buff;
extern  unsigned char base_1m_buff;
extern  unsigned char base_1h_buff;

extern  unsigned char sys_1s_buff;
extern  unsigned char sys_10s_buff;
extern  unsigned char sys_1m_buff;
extern  unsigned char sys_1h_buff;

extern  unsigned char water_flash_0s5_buff;

extern  unsigned char key_buff;
extern	unsigned char status_buff;
extern	signed char status_5m_buff;

extern	signed char key_2ms_buff;
extern	signed char key2_2s_buff;

extern	unsigned char pro_led_buff;
extern	unsigned char fun_led_buff;

extern	unsigned char key2_switch_flag;
extern	unsigned char process_key_falg;
extern	unsigned char function_key_falg;

extern	unsigned char key_preset_flag;
extern	unsigned char preset_confirm_flag;
  
 
 
 
 
  
extern	unsigned char key_debunce;
extern	unsigned char old_key;
  
extern	unsigned char program_count;
extern	unsigned char program_buff;
extern	unsigned char process_count; 
extern	unsigned char process_buff;

 
 

extern	unsigned char function_count;
extern	unsigned char function_buff;
extern	unsigned char mode_buff_0;
extern	unsigned char led_disp2;

extern	unsigned char water_count;
extern	unsigned char water_buff;

extern	unsigned char select_tube_flag;
extern	unsigned char select_fastest_flag;
extern	unsigned char select_soak_flag;

extern	unsigned char run_soak_flag;
extern	unsigned char run_wash_flag;
extern	unsigned char run_rinse_flag;
extern	unsigned char run_spin_flag;

extern	unsigned char key_water_flag;
extern	unsigned char program_auto_flag;
extern	unsigned char weight_finish_flag;
extern	unsigned char texture_finish_flag;

extern	unsigned char weight_buff;
extern	unsigned char texture_buff;
extern	unsigned char water_level;

extern	signed char flash_500ms_buff;
extern	unsigned char flash_off_flag;

extern	unsigned char water_flash_flag;
extern	unsigned char program_flash_flag;
extern	unsigned char preset_flash_flag;

extern	unsigned char led_flash_buff;
extern	unsigned char led_flash_buff1;
extern	unsigned char led_flash_buff3;
extern	unsigned char led_flash_buff4;

extern	unsigned char preset_count;
extern	unsigned char preset_buff;
extern	unsigned char display_buff;
extern	unsigned char preset_1s5_buff;
extern	signed char preset_500ms_buff;

extern	unsigned char preset_3s_buff;
extern	signed char key3_1s5_buff;
extern	signed char preset_5s_buff;

extern	unsigned char save_led_buff_0;
extern	unsigned char save_led_buff_1;
extern	unsigned char save_led_buff_2;  

 

extern  unsigned char operation_buff;
extern	signed char operation_counter;
extern	unsigned char pass_time_counter;
extern	unsigned char table_rom_number;
extern	unsigned char dependant_wash_time;

extern	unsigned char water_full_flag;
extern	unsigned char softener_flag;
extern	unsigned char drain_empty_flag;
extern	unsigned char unbalance_flag;
extern	unsigned char stream_finish_flag;
extern	unsigned char run_inlet_flag;

extern	unsigned char t3_key_flag;
extern	unsigned char test3_flag;
extern	unsigned char t5_3key_flag;
extern	unsigned char test5_flag;
extern	unsigned char t5_2key_flag;
extern	unsigned char t4_3key_flag;
extern	unsigned char test4_flag;
extern	unsigned char t4_2key_flag;
extern	unsigned char t2_3key_flag;
extern	unsigned char test2_flag;
extern	unsigned char t2_2key_flag;
extern	unsigned char t1_3key_flag;
extern	unsigned char test1_flag;
extern	unsigned char test_1_mode;
extern	unsigned char test_1_start_flag;
extern	unsigned char t1_2key_flag;
extern	unsigned char test_buff;
extern	unsigned char t_mode_switch_flag;
extern	unsigned char test_inlet_flag;
extern	unsigned char test_softner_flag;
extern	unsigned char test2_spin_flag;

extern	unsigned char default_flag;

extern	signed char run_1s_buff;
extern	unsigned char test_start_flag;
extern	unsigned char t1_switch_3s_buff;
extern	unsigned char test_1_3s_buff;
extern	unsigned char all_led_flash_flag;
extern	unsigned char buzz_buff;
 
extern	unsigned char t1_end_3s_buff;
extern	unsigned char t1_finish_flag;
extern	unsigned char pro_flash_flag;
extern	unsigned char stream_run;
extern	unsigned char stream_stop;
 
extern	unsigned char finish;
extern	unsigned char key_release;
extern	unsigned char test_2_3s_buff;
extern	unsigned char test_2_7s_buff;
 


extern	signed char inlet_10s_buff;
extern	signed int inlet_20m_buff;
extern	signed char inlet_2m_buff;
extern	unsigned char cycle_start_flag;

extern	signed int drain_8m_buff;
extern	signed char drain_2m_buff;
extern	signed char drain_60s_buff;
extern	signed char drain_10s_buff;
extern	signed char drain_20s_buff;

extern	unsigned char main_soak_time;
extern	unsigned char main_wash_time;

extern	unsigned char soak_flash_flag;
extern	unsigned char wash_flash_flag;
extern	unsigned char rinse_flash_flag;
extern	unsigned char spin_flash_flag;

extern	signed int soak_10m_buff;
extern	signed char soak_20m_buff;
extern	signed char soak_30m_buff;

extern	signed char soak_1m_buff;
extern	signed char soak_2m_buff;
extern	unsigned char soak_3m_buff;
extern	unsigned char soak_4m_buff;
extern	signed int soak_9m_buff;

extern	unsigned char soak_1_cycle_buff;
extern	unsigned char soak_2_cycle_buff;
extern	unsigned char soak_3_cycle_buff;

extern	unsigned int run_stream_time;
extern	unsigned char balance_time_buff;
extern	unsigned char wash_start_flag;
extern	unsigned char wash_finish_flag;

extern	unsigned char interm_spin_10s_buff;
extern	unsigned char interm_spin_5s_buff;
extern	unsigned char interm_spin_4s_buff;
extern	unsigned char interm_spin_3s_buff;


extern	unsigned char interm_spin_time;
extern	unsigned char interm_spin_cycle;

extern	unsigned char spin_balance_time_buff;

extern	signed char inertial_30s_buff;
extern	signed char break_5s_buff;

 


extern	unsigned char output_buff;
extern	unsigned char machine_type;
extern	unsigned char err_buff;

extern	unsigned char process_left_time;
extern	unsigned char total_run_time;
extern	unsigned char total_left_time;

extern	unsigned char water_level_buff;
 

extern	unsigned char status_buff;
extern	unsigned char lid_open;
extern	unsigned char running_process;
extern	unsigned char manual_process_buff;

extern	unsigned char ac_frequency;
extern	unsigned char stream_table_row;
extern	unsigned char ext_stream_table_row;

extern	unsigned char main_stream_time;
extern	unsigned char ext_stream_time;

extern	unsigned char mot_cycle_buff;
extern	unsigned char stream_buff;
extern	signed char stream_100ms_buff;
extern	signed char base_100ms_buff;

extern	signed char stream_run_time_buff;
extern	signed char stream_stop_time_buff;
extern	unsigned char stream_start_flag;
extern	unsigned char stream_stop_flag;

extern	unsigned char pro_default_flag;

extern	unsigned char program_left_time;
 

extern	unsigned char key_buzz_flag;
extern	signed char key_buzz_time;


 



extern union byte_def_1 {

	volatile unsigned char byte;

	struct{

	unsigned char b0:1;
	unsigned char b1:1;
	unsigned char b2:1;
	unsigned char b3:1;
	unsigned char b4:1;
	unsigned char b5:1;
	unsigned char b6:1;
	unsigned char b7:1;

	}bi;
};



extern struct{
	
	union byte_def_1 led_0;
	union byte_def_1 led_1;
	union byte_def_1 led_2;
	union byte_def_1 led_3;
	union byte_def_1 led_4;
	
}led_disp;

extern struct{
	
	union byte_def_1 key_flag;
	union byte_def_1 flash;
	union byte_def_1 flag_2;
	union byte_def_1 flag_3;
	union byte_def_1 flag_4;
	
}flag;



extern struct struct_table{
	
	unsigned int run;
	unsigned int stop;
	
};

extern const struct struct_table Stream_Table_A[10][3];
extern const struct struct_table Stream_Table_B[12][3];
extern const struct struct_table Stream_Table_Ext_A[4][2];
extern const struct struct_table Stream_Table_Ext_B[4][2];
extern const struct struct_table Stream_Table_TEST[3][2];

extern const struct struct_table Balance_Stream_A[2];
extern const struct struct_table Speedy_Stream_A[4];
extern const struct struct_table Fastest_Stream_A[2];

 

extern const unsigned char Common_Time_Table[6][27];

extern const unsigned char Standard_Time_Table[6][17];

extern const unsigned char Jeans_Time_Table[6][25];

extern const unsigned char Fiber_Time_Table[4][23];


extern const unsigned char Cotton_Time_Table[4][33];

extern const unsigned char Speedy_Time_Table[21];

extern const unsigned char Fastest_Time_Table[16];

extern const unsigned char TubeDry_Time_Table[7];

 

extern const unsigned char Common_Soak_Time_Table[3][3];

extern const unsigned char Common_Wash_Time_Table[3][3];

extern const unsigned char Standard_Soak_Time_Table[3][3];

extern const unsigned char Standard_Wash_Time_Table[3][3];

extern const unsigned char Jeans_Soak_Time_Table[3];

extern const unsigned char Jeans_Wash_Time_Table[3];

extern const unsigned char Fiber_Soak_Time;
extern const unsigned char Fiber_Wash_Time;
extern const unsigned char Cotton_Soak_Time;
extern const unsigned char Cotton_Wash_Time;

extern const unsigned char seg_led_table[];



#line 4 "D:/Projects/Haier/General Washer/workspace/General_Washer/General_Washer/src/operation_b.c"


void operation(void)
{
	unsigned char i;
	unsigned char j;
	
	i = operation_buff;
	
	i &= 0xf7;
	
	switch (i)
	 {
		 case 0:
		 
		 j = operation_buff;
		 j >> 3;
		 j &= 0x03;
		 if (j == 1)
		  {
			  table_rom_number = 0;
			  
			  j >> 2;
			  
 
 

		  }
		 else if (j == 2)
		  {
			  table_rom_number = 1;
 
		  }
		 else if (j ==3)
		  {
			  table_rom_number = manual_process_buff + 2;
 
		  }	 
		 common_program();
		 break;
		 
		 case 1:
		 
		 speedy_program();
		 break;
		 
		 case 2:
		 
		 fastest_program();
		 break;
		 
		 case 3:
		 
		 j = operation_buff;
		 j >> 3;
		 j &= 0x03;
		 if (j == 1)
		  {
			  table_rom_number = 0;
			  
			  j >> 2;
			  
 
 

		  }
		 else if (j == 2)
		  {
			  table_rom_number = 1;
 
		  }
		 else if (j ==3)
		  {
			  table_rom_number = manual_process_buff + 2;
 
		  }	 
		  
		 jeans_program();
		 break;
		 
		 
		 case 4:
		 
		 j = operation_buff;
		 j >> 3;
		 j &= 0x03;
		 if (j == 1)
		  {
			  table_rom_number = 0;
			  
			  j >> 2;
			  
 
 

		  }
		 else if (j == 2)
		  {
			  table_rom_number = 1;
 
		  }
		 else if (j ==3)
		  {
			  table_rom_number = manual_process_buff + 2;
 
		  }	 
		  
		 standard_program();
		 break;
		 
		 case 5:
		 
		 j = operation_buff;
		 j >> 3;
		 j &= 0x03;
		 if (j == 1)
		  {
			  table_rom_number = 0;
			  
			  j >> 2;
			  
 
 

		  }
		 else if (j == 2)
		  {
			  table_rom_number = 1;
 
		  }
		 else if (j ==3)
		  {
			  table_rom_number = manual_process_buff + 2;
 
		  }	 
		  
		 fiber_program();
		 break;
		 
		 case 6:
		 
		 j = operation_buff;
		 j >> 3;
		 j &= 0x03;
		 if (j == 1)
		  {
			  table_rom_number = 0;
			  
			  j >> 2;
			  
 
 

		  }
		 else if (j == 2)
		  {
			  table_rom_number = 1;
 
		  }
		 else if (j ==3)
		  {
			  table_rom_number = manual_process_buff + 2;
 
		  }	 
		  
		 cotton_program();
		 break;
		 
		 case 7:
		 
		 tubedry_program();
		 break;
		 
	 };
	
  return;
	
}

 




void common_program(void)
{
	if (Common_Time_Table[table_rom_number][operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0:
			  case 19: inlet(0, 0, 0xff ); 
			  break;
			  
			  case 6:  inlet(0, 0, 0xff );
			  break;
			  
			  case 1:  soak(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 2:
			  case 20: wash(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 4:
			  case 14:
			  case 22: drain();
			  break;
			  
			  case 5:
			  case 15:
			  case 23: interm_spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 16:
			  case 24: spin(Common_Time_Table[table_rom_number][operation_counter]);

		  }
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
	
}

 




void standard_program(void)
{
	if (Standard_Time_Table[table_rom_number][operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0:  inlet(0, 0, 0xff ); 
			  break;
			  
			  case 6:  inlet(0, 0, 0xff );
			  break;
			  
			  case 1:  soak(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 2:  wash(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 4:  drain();
			  break;
			  
			  case 5:  interm_spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 14: spin(Common_Time_Table[table_rom_number][operation_counter]);

		  }
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
	
}

 




void jeans_program(void)
{
	if (Jeans_Time_Table[table_rom_number][operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0:  
			  case 9:
			  case 17: inlet(0, 0, 0xff ); 
			  break;
			  
			  case 1:  soak(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 2:  
			  case 10:
			  case 18: wash(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 4:  
			  case 12:
			  case 20: drain();
			  break;
			  
			  case 5:  
			  case 13:
			  case 21: interm_spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 6: 
			  case 14:
			  case 22: spin(Common_Time_Table[table_rom_number][operation_counter]);

		  }
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
	
}

 




void fiber_program(void)
{
	if (Fiber_Time_Table[table_rom_number][operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0:  
			  case 9:
			  case 16: inlet(0, 0, 0xff ); 
			  break;
			  
			  case 1:  soak(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 2:  
			  case 10:
			  case 17: wash(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 4:  
			  case 11:
			  case 18: drain();
			  break;
			  
			  case 5:  
			  case 12:
			  case 19: interm_spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 6: 
			  case 13:
			  case 20: spin(Common_Time_Table[table_rom_number][operation_counter]);

		  }
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
	
}

 




void cotton_program(void)
{
	if (Cotton_Time_Table[table_rom_number][operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0:  
			  case 9:
			  case 17: 
			  case 25: inlet(0, 0, 0xff ); 
			  break;
			  
			  case 1:  soak(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 2:  
			  case 10:
			  case 18: 
			  case 26: wash(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 4:  
			  case 12:
			  case 20: 
			  case 28: drain();
			  break;
			  
			  case 5:  
			  case 13:
			  case 21: 
			  case 29: interm_spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 6: 
			  case 14:
			  case 22: 
			  case 30: spin(Common_Time_Table[table_rom_number][operation_counter]);

		  }
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
	
}

 




void speedy_program(void)
{
	if (Speedy_Time_Table[operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0: inlet(0, 0, 0x01 ); 
			  break;
			  
			  case 9: inlet(0, 0, 0x01 );
			  break;
			  
			  case 3:  
			  case 4:
			  case 5: wash(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 7: drain();
			  break;
			  
			  case 8: interm_spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 16: inertial();
			  break;
			  
			  case 18: spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 21: buzz();

		  }
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
	
}

 




void fastest_program(void)
{
	if (Fastest_Time_Table[operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0: inlet(0, 0, 0x02 ); 
			  break;
			  
			  case 7: inlet(0, 0, 0x02 );
			  break;

			  case 3: wash(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 5: 
			  case 12: drain();
			  break;
			  
			  case 6: interm_spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 10: inertial();
			  break;
			  
			  case 13: spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 16: buzz();

		  }
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
	
}

 




void tubedry_program(void)
{
	if (TubeDry_Time_Table[operation_counter])
	 {
		 switch (operation_counter)
		  {
			  case 0: 
			  case 2:
			  case 4: interm_spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 1: 
			  case 3:
			  case 5: spin(Common_Time_Table[table_rom_number][operation_counter]);
			  break;
			  
			  case 6: buzz();

		  };
		  
		return;
		 
	 }
	 
	else 
	operation_counter ++;
	return;
	
}

⌨️ 快捷键说明

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