只是简单的IO口操作,例程里边都有的,现在有点时间就直接给你写个简单的吧,注释就不写了,多个按键的话就把Data的各个位按位域分配出去。
#define AnJian1 GpioDataRegs.GPADATA.bit.GPIOA6
INT16U Data,LastData,JumpFlag,CntStartFlag,T1,AnJianData;
Data = Data & (AnJian1 &1);
JumpFlag = (LastData & 1) ^ (Data & 1);
LastData = Data;
if(JumpFlag & 1)
{
CntStartFlag = CntStartFlag ^ 1;
}
if(CntStartFlag)
{
T1++;
if(T1 >20)
{
AnJianData = AnJianData ^1;
}
}
//上电初始化时初始化一下变量
Data = 0;
LastData = 0;
JumpFlag = 0;
CntStartFlag = 0;
T1 = 0;
AnJianData = 0;
JumpFlag = (LastData & 1) ^ (Data & 1);
LastData = Data;
|