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 + -
显示快捷键?