📄 taskkey.c
字号:
/*--------------文件信息--------------------------------------------------------------------------------
**文 件 名: I2C_24C04.C
**创 建 人: 刘宝贵
**最后修改日期: 2005 07 19
**描 述: A24c04驱动函数
**
**--------------历史版本信息----------------------------------------------------------------------------
** 修改人:
** 版 本:
** 日 期:
** 描 述:
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#include"includes.h"
#define KEY_FUNCTION 0x0C
#define KEY_RUN 0x0D
#define KEY_STOP 0x0F
#define KEY_PAUSE 0x0E
#define KEY_LEFT 0x0B
#define KEY_YES 0x0A
#define KEY_0 0x0
#define KEY_1 0x1
#define KEY_2 0x2
#define KEY_3 0x3
#define KEY_4 0x4
#define KEY_5 0x5
#define KEY_6 0x6
#define KEY_7 0x7
#define KEY_8 0x8
#define KEY_9 0x9
#define KEY_NULL 0xFF
unsigned char KeyNumber;
/*********************************************************************************************************
** 函数名称:
** 功能描述:
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 注 意:
** 作 者:
** 日 期:
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void InitializeNewStep()
{
LoadSingleStep(ProgramNo,Step);//读取工步
if(CheckSingleStep() == 0)//检测读取的工步是否合法 0:不合法。
{
Mode = 99;
LoopTimes = 0;
SetupI = 0;
SetupU = 0;
// IntervalTimeM = 0;
JumpTimeM = 0;
JumpU = 0;
JumpQ = 0;
}
Deep0Focus = 1;
Deep1Focus = 0;
}
/*********************************************************************************************************
** 函数名称:
** 功能描述:
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 注 意:
** 作 者:
** 日 期:
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
unsigned char ReadKey()
{
unsigned char data keytemp,keytemp1;
do
{
os_wait (K_TMO, 20/OS_MSEL_PER_TICKS, 0);
keytemp = ReadOutXRAM(CPLD_KEY_NUMBER);//读CPLD的键盘寄存器
os_wait (K_TMO, 20/OS_MSEL_PER_TICKS, 0);
keytemp1 = ReadOutXRAM(CPLD_KEY_NUMBER);//读CPLD的键盘寄存器
}while(keytemp != keytemp1 || keytemp > 15);
switch(keytemp1)
{
/*
case 0:keytemp = KEY_FUNCTION ;break;
case 1:keytemp = KEY_1 ;break;
case 2:keytemp = KEY_2 ;break;
case 3:keytemp = KEY_3 ;break;
case 4:keytemp = KEY_RUN ;break;
case 5:keytemp = KEY_4 ;break;
case 6:keytemp = KEY_5 ;break;
case 7:keytemp = KEY_6 ;break;
case 8:keytemp = KEY_STOP ;break;
case 9:keytemp = KEY_7 ;break;
case 0x0A:keytemp = KEY_8 ;break;
case 0x0B:keytemp = KEY_9 ;break;
case 0x0C:keytemp = KEY_PAUSE ;break;
case 0x0D:keytemp = KEY_LEFT ;break;
case 0x0E:keytemp = KEY_YES ;break;
case 0x0F:keytemp = KEY_0 ;break;
*/
case 0:keytemp = KEY_FUNCTION ;break;
case 1:keytemp = KEY_PAUSE ;break;
case 2:keytemp = KEY_STOP ;break;
case 3:keytemp = KEY_RUN ;break;
case 4:keytemp = KEY_1 ;break;
case 5:keytemp = KEY_4 ;break;
case 6:keytemp = KEY_7 ;break;
case 7:keytemp = KEY_LEFT ;break;
case 8:keytemp = KEY_2 ;break;
case 9:keytemp = KEY_5 ;break;
case 0x0A:keytemp = KEY_8 ;break;
case 0x0B:keytemp = KEY_YES ;break;
case 0x0C:keytemp = KEY_3 ;break;
case 0x0D:keytemp = KEY_6 ;break;
case 0x0E:keytemp = KEY_9 ;break;
case 0x0F:keytemp = KEY_0 ;break;
}
return(keytemp);
}
/*********************************************************************************************************
** 函数名称:
** 功能描述:
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 注 意:
** 作 者:
** 日 期:
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**-------------------------------------------------------------------------------------------------------
*********************************************************************************************************/
void TaskKey (void) _task_ 1
{
unsigned char data KeyNumber;
Deep0Focus = 0;
Deep1Focus = 0;
while(1)
{
KeyNumber = ReadKey();
switch(KeyNumber)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
{
uint16 temp16;
uint8 temp8;
switch(State)
{
case RUN:
{
if(KeyNumber == 1 && Debug ==0 )//在运行时按数字键1则显示调试信息
{
Debug = 1;
}
else
{
Debug = 0;
}
}break;
case FUNCTION_TABLE:
{
switch(KeyNumber)
{
case 1://转设定工步
{
ProgramNo = 0;
State = SET_PROGRAM_STEP;
EepromWriteByte(E2State ,State);
Deep0Focus = 1;
Deep1Focus = 0;
Step = 0;
LoadSingleStep(ProgramNo,Step);//读取工步
if(CheckSingleStep() == 0)//检测读取的工步是否合法 0:不合法。
{
Mode=99;
}
}break;
case 2://转设定参数
{
State = SET_PARAMETER;
EepromWriteByte(E2State ,State);
Deep0Focus=0;
Deep1Focus=0;
}break;
default://返回停止页面
{
State = STOP;
EepromWriteByte(E2State ,State);
}
}
}break;
case SET_PARAMETER:
{
switch(Deep0Focus)
{
case 0://设定地址
{
if(Deep1Focus!=255)
{
temp16=1;
temp8 = Deep1Focus--;
while(temp8>0)
{
temp8--;
temp16*=10;
}
Address += (unsigned char)(temp16*KeyNumber);
}
}break;
case 1://Ib
{
if(Deep1Focus!=255)
{
temp16=1;
temp8 = Deep1Focus--;
while(temp8>0)
{
temp8--;
temp16*=10;
}
Ib += temp16*KeyNumber;
}
}break;
case 2://Ik
{
if(Deep1Focus!=255)
{
temp16=1;
temp8 = Deep1Focus--;
while(temp8>0)
{
temp8--;
temp16*=10;
}
Ik += temp16*KeyNumber;
}
}break;
case 3://设定Ub
{
if(Deep1Focus!=255)
{
temp16=1;
temp8 = Deep1Focus--;
while(temp8>0)
{
temp8--;
temp16*=10;
}
Ub += temp16*KeyNumber;
}
}break;
case 4://设定Uk
{
if(Deep1Focus!=255)
{
temp16=1;
temp8 = Deep1Focus--;
while(temp8>0)
{
temp8--;
temp16*=10;
}
Uk += temp16*KeyNumber;
}
}break;
case 5://设定DAb
{
if(Deep1Focus!=255)
{
temp16=1;
temp8 = Deep1Focus--;
while(temp8>0)
{
temp8--;
temp16*=10;
}
DAb += temp16*KeyNumber;
}
}break;
case 6://设定DAk
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -