void KEY_Processing(void) { if((KEY_Value == KEY_A)||(KEY==1)) { KEY_Value = KEY_NOP; KEY = 0; //printf("key --->A\r\n"); if(Auto == 0) { // OPEN = ~OPEN; if(OPEN) { OPEN = 0; Motor_Go_Angleall(0); //¹Ø±Õ } else { OPEN = 1; Motor_Go_Angleall(180); //¹Ø±Õ } } else { Mode = ++Mode %4; if(Mode == 0) { EEPROM_Write(); } } } if((KEY_Value == KEY_B)||(KEY==2)) { KEY_Value = KEY_NOP; KEY = 0; // printf("key --->B\r\n"); switch(Mode) { case 0: if(Auto) { Auto = 0; } else { Auto = 1; } break; case 1: if(Water_Max < 100)Water_Max++; break; case 2: if(Light_Max < 4000)Light_Max +=10; //EEPROM_Write(); break; case 3: if(Temp_Max < 40 )Temp_Max +=1; break; } } if((KEY_Value == KEY_C)||(KEY==3)) { KEY_Value = KEY_NOP; KEY = 0; //printf("key --->C\r\n"); switch(Mode) { case 1: if(Water_Max >= 1)Water_Max--; break; case 0: if(Auto == 0) //ÊÖ¶¯Ä£Ê½ { Relay = ~Relay; } break; case 2: if(Light_Max >= 10)Light_Max -=10; break; case 3: if(Temp_Max >= 1)Temp_Max -=1; break; } } if((KEY_Value == KEY_D)||KEY==4) { KEY_Value = KEY_NOP; KEY = 0; if(Mode == 0) { if(Auto == 0) //ÊÖ¶¯Ä£Ê½ { Fan = ~Fan; } } } if((KEY_Value == KEY_E)||KEY==5) { KEY_Value = KEY_NOP; KEY = 0; if(Auto == 0) //ÊÖ¶¯Ä£Ê½ { if(PWM_Value > 90) { PWM_Value = 0; } else if(PWM_Value > 65) { PWM_Value = 99; } else if(PWM_Value > 35) { PWM_Value = 70; } else { PWM_Value = 40; } //TIM_SetCompare3(TIM3, PWM_Value*2.49); TIM_SetCompare4(TIM3, PWM_Value*2.49); } } }这些代码分别为什么意思
时间: 2024-01-04 07:01:52 浏览: 66
这段代码是一个嵌入式系统中的按键处理函数,用于处理按键的按下和松开事件,并根据不同的按键和模式执行不同的操作。具体来说:
- KEY_A代表第一个按键,执行以下操作:
- 如果当前处于手动模式(Auto == 0),则切换开关状态(OPEN),并根据开关状态控制所有电机转动到0度或180度;
- 如果当前处于自动模式(Auto == 1),则切换模式(Mode),并将模式值存储到EEPROM中。
- KEY_B代表第二个按键,执行以下操作:
- 如果当前处于模式0(手动/自动切换模式),则切换自动模式状态(Auto);
- 如果当前处于模式1(水位调整模式),则增加水位上限(Water_Max);
- 如果当前处于模式2(光照强度调整模式),则增加光照强度上限(Light_Max);
- 如果当前处于模式3(温度调整模式),则增加温度上限(Temp_Max)。
- KEY_C代表第三个按键,执行以下操作:
- 如果当前处于模式1(水位调整模式),则减少水位上限(Water_Max);
- 如果当前处于模式0(手动/自动切换模式),则切换继电器状态(Relay);
- 如果当前处于模式2(光照强度调整模式),则减少光照强度上限(Light_Max);
- 如果当前处于模式3(温度调整模式),则减少温度上限(Temp_Max)。
- KEY_D代表第四个按键,执行以下操作:
- 如果当前处于模式0(手动/自动切换模式),并且处于手动模式(Auto == 0),则切换风扇状态(Fan)。
- KEY_E代表第五个按键,执行以下操作:
- 如果当前处于手动模式(Auto == 0),则根据当前PWM值(PWM_Value)选择不同的PWM输出值,从而控制PWM输出到电机驱动器。
阅读全文