📄 keypress.c
字号:
void keyprocess(void)
{
uchar key=0xff;
if(!pushSW){ //脚踏开关
switch(status){
case llstart: //不是治疗状态,复位为治疗态
case llprepare:{timeold=0;timenow=0;power=0;status=zlprepare;}break;
case zlprepare:{ //再次踩脚踏开关,如果条件允许,则开始工作
if(timenow&&power)status=zlstart;
else status=zlprepare;
}break;
}
}
key=ch451_read();
key&=0x7f;
switch(key){
case llkeypress:{ //理疗
switch(status){
case zlstart: //不是理疗状态,复位为理疗态
case zlprepare:{timeold=0;timenow=0;power=0;status=llprepare;}break;
case llprepare:{//再次按下理疗键,如果条件允许,则开始工作
if(timenow&&power)status=llstart;
else status=llprepare;
}break;
}
}
break;
///////////////////////////////////////
case resetkeypress:{ //复位按下
if(status==llstart){timenow=timeold;status=llprepare;}
if(status==zlprepare){ //假如在治疗准备状态下按下复位键,如果没有开始设置
if(settime[0]>0x0a){settime[0]=0x0a;settime[1]=100;} //则设置settime
//-----
if(settime[0]==0x00){ //假如按键时间超过10s
ch451_write(CH451_DIG5|set);
settime[0]=0xff;settime[1]=0xff;
read_parameter();status=set; //转移为设置状态,读参数
}
//---
}
if (status==set){ //假如再设置状态下按下复位健,则返回
if(settime[0]>0x0a){settime[0]=0x0a;settime[1]=100;} //则设置settime
//---
if(settime[0]==0x00){ //假如按键时间超过10s
ch451_write(CH451_DIG5|llprepare);
settime[0]=0xff;settime[1]=0xff;
save_parameter();status=zlprepare; //转移为治疗准备状态,写参数
}
//---
}
}break;
case resetkeyup:{ //复位键抬起
if(settime[0]!=0x00){ //复位键没有按下10s
settime[0]=0xff;settime[1]=0xff;
}
}break;
////////////////////////////////////////////////////////////
case timeaddkeypress:{ //时间加
if(status==set){
if(setsection==3)setsection=0;
else setsection++;
}
else{
if(timenow>=99)timenow=0;
else timenow++;
timeold=timenow;
}
}
break;
case timedeckeypress:{ //时间减
if(status==set){
if(setsection==0)setsection=3;
else setsection--;
}
else{
if(timenow==0)timenow=99;
else timenow--;
timeold=timenow;
}
}
break;
case poweraddkeypress:{ //功率加
if(status==set){
if(coef[setsection]==15)coef[setsection]=6;
else coef[setsection]++;
}
else{
if(status==zlstart||status==zlprepare){
if(power>=60)power=0;
else power++;
}
if(status==llstart||status==llprepare){
if(power>=30)power=0;
else power++;
}
}
}
break;
case powerdeckeypress:{ //功率减
if(status==set){
if(coef[setsection]==6)coef[setsection]=15;
else coef[setsection]--;
}
else{
if(status==zlstart||status==zlprepare){
if(power<1)power=60;
else power--;
}
if(status==llstart||status==llprepare){
if(power<1)power=30;
else power--;
}
}
}
break;
}
if(status==set)dispset();
else disptimpower();
}
void keyprocess(void)
{
uchar key=0xff;
if(!pushSW){ //脚踏开关
switch(status){
case llstart:{timeold=0;timenow=0;power=0;status=zlprepare;}break;//不是治疗状态,复位为治疗态
case llprepare:{timeold=0;timenow=0;power=0;status=zlprepare;}break;
case zlprepare:{ //再次踩脚踏开关,如果条件允许,则开始工作
if(timenow&&power)status=zlstart;
else status=zlprepare;
}break;
}
}
key=ch451_read();
key&=0x7f;
switch(key){
case llkeypress:{ //理疗
switch(status){
case zlstart:{timeold=0;timenow=0;power=0;status=llprepare;}break;//不是理疗状态,复位为理疗态
case zlprepare:{timeold=0;timenow=0;power=0;status=llprepare;}break;
case llprepare:{//再次按下理疗键,如果条件允许,则开始工作
if(timenow&&power)status=llstart;
else status=llprepare;
}break;
}
}
break;
case resetkeypress:{ //复位按下
if(status==llstart){timenow=timeold;status=llprepare;}
if(status==zlprepare){ //假如在治疗准备状态下按下复位键,如果没有开始设置
if(settime[0]>0x0a){settime[0]=0x0a;settime[1]=100;} //则设置settime
//-----
if(settime[0]==0x00){ //假如按键时间超过10s
ch451_write(CH451_DIG5|0x0f);
settime[0]=0xff;settime[1]=0xff;
if(status==zlprepare)
{read_parameter();status=set;} //转移为设置状态,读参数
else
status=zlprepare; //转移为治疗准备状态
}
//---
}
if (status==set){ //假如再设置状态下按下复位健,则返回
if(settime[0]>0x0a){settime[0]=0x0a;settime[1]=100;} //则设置settime
//---
if(settime[0]==0x00){ //假如按键时间超过10s
ch451_write(CH451_DIG5|0x01);
settime[0]=0xff;settime[1]=0xff;
if(status==set)
{save_parameter();status=zlprepare;} //转移为治疗准备状态,写参数
else
status=set; //转移为设置状态
}
//---
}
}break;
case resetkeyup:{ //复位键抬起
if(status==zlprepare){
if(settime[0]!=0x00){ //复位键没有按下10s
settime[0]=0xff;settime[1]=0xff;
status=zlprepare; //转移为治疗准备状态
}
}
if(status==set){
if(settime[0]!=0x00){ //复位键没有按下10s
settime[0]=0xff;settime[1]=0xff;
status=set; //转移为设置状态
}
}
}break;
case timeaddkeypress:{ //时间加
if(status==set){
if(setsection==3)setsection=0;
else setsection++;
}
else{
if(timenow>=99)timenow=0;
else timenow++;
timeold=timenow;
}
}
break;
case timedeckeypress:{ //时间减
if(status==set){
if(setsection==0)setsection=3;
else setsection--;
}
else{
if(timenow==0)timenow=99;
else timenow--;
timeold=timenow;
}
}
break;
case poweraddkeypress:{ //功率加
if(status==set){
if(coef[setsection]==15)coef[setsection]=6;
else coef[setsection]++;
}
else{
if(status==zlstart||status==zlprepare){
if(power>=60)power=0;
else power++;
}
if(status==llstart||status==llprepare){
if(power>=30)power=0;
else power++;
}
}
}
break;
case powerdeckeypress:{ //功率减
if(status==set){
if(coef[setsection]==6)coef[setsection]=15;
else coef[setsection]--;
}
else{
if(status==zlstart||status==zlprepare){
if(power<1)power=60;
else power--;
}
if(status==llstart||status==llprepare){
if(power<1)power=30;
else power--;
}
}
}
break;
}
if(status==set)dispset();
else disptimpower();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -