GPIO_setLow(myGpio,GPIO_Number_19);
GPIO_setHigh(myGpio,GPIO_Number_18);
GPIO_setHigh(myGpio,GPIO_Number_17);
GPIO_setHigh(myGpio,GPIO_Number_16);
key0=GPIO_getData(myGpio,GPIO_Number_29);
key1=GPIO_getData(myGpio,GPIO_Number_32);
key2=GPIO_getData(myGpio,GPIO_Number_33);
key3=GPIO_getData(myGpio,GPIO_Number_34);
// delay_nop1(2);
key4=GPIO_getData(myGpio,GPIO_Number_19);
key5=GPIO_getData(myGpio,GPIO_Number_18);
key6=GPIO_getData(myGpio,GPIO_Number_17);
key7=GPIO_getData(myGpio,GPIO_Number_16);
if(key4==0&&key5==1&&key6==1&&key7==1)
{
key0=GPIO_getData(myGpio,GPIO_Number_29);
key1=GPIO_getData(myGpio,GPIO_Number_32);
key2=GPIO_getData(myGpio,GPIO_Number_33);
key3=GPIO_getData(myGpio,GPIO_Number_34);
if(key0==0&&key1==1&&key2==1&&key3==1)
{
key=1;
bili=bili+0.01;
}
if(key0==1&&key1==0&&key2==1&&key3==1)
{
key=2;
bili=bili+0.1;
}
if(key0==1&&key1==1&&key2==0&&key3==1)
{
key=3;
bili=bili+1;
}
if(key0==1&&key1==1&&key2==1&&key3==0)
{
key=4;
bili=bili-0.01;
}
}
GPIO_setHigh(myGpio,GPIO_Number_19);
GPIO_setLow(myGpio,GPIO_Number_18);
GPIO_setHigh(myGpio,GPIO_Number_17);
GPIO_setHigh(myGpio,GPIO_Number_16);
key0=GPIO_getData(myGpio,GPIO_Number_29);
key1=GPIO_getData(myGpio,GPIO_Number_32);
key2=GPIO_getData(myGpio,GPIO_Number_33);
key3=GPIO_getData(myGpio,GPIO_Number_34);
// delay_nop1(2);
key4=GPIO_getData(myGpio,GPIO_Number_19);
key5=GPIO_getData(myGpio,GPIO_Number_18);
key6=GPIO_getData(myGpio,GPIO_Number_17);
key7=GPIO_getData(myGpio,GPIO_Number_16);
if(key4==1&&key5==0&&key6==1&&key7==1)
{
key0=GPIO_getData(myGpio,GPIO_Number_29);
key1=GPIO_getData(myGpio,GPIO_Number_32);
key2=GPIO_getData(myGpio,GPIO_Number_33);
key3=GPIO_getData(myGpio,GPIO_Number_34);
if(key0==0&&key1==1&&key2==1&&key3==1)
{
key=5;
jifen=jifen+0.01;
}
if(key0==1&&key1==0&&key2==1&&key3==1)
{
key=6;
jifen=jifen+0.1;
}
if(key0==1&&key1==1&&key2==0&&key3==1)
{
key=7;
jifen=jifen+1;
}
if(key0==1&&key1==1&&key2==1&&key3==0)
{
key=8;
jifen=jifen-0.01;
}
}
GPIO_setHigh(myGpio,GPIO_Number_19);
GPIO_setHigh(myGpio,GPIO_Number_18);
GPIO_setLow(myGpio,GPIO_Number_17);
GPIO_setHigh(myGpio,GPIO_Number_16);
key0=GPIO_getData(myGpio,GPIO_Number_29);
key1=GPIO_getData(myGpio,GPIO_Number_32);
key2=GPIO_getData(myGpio,GPIO_Number_33);
key3=GPIO_getData(myGpio,GPIO_Number_34);
// delay_nop1(2);
key4=GPIO_getData(myGpio,GPIO_Number_19);
key5=GPIO_getData(myGpio,GPIO_Number_18);
key6=GPIO_getData(myGpio,GPIO_Number_17);
key7=GPIO_getData(myGpio,GPIO_Number_16);
if(key4==1&&key5==1&&key6==0&&key7==1)
{
key0=GPIO_getData(myGpio,GPIO_Number_29);
key1=GPIO_getData(myGpio,GPIO_Number_32);
key2=GPIO_getData(myGpio,GPIO_Number_33);
key3=GPIO_getData(myGpio,GPIO_Number_34);
if(key0==0&&key1==1&&key2==1&&key3==1)
{
key=9;
weifen=weifen+0.01;
}
if(key0==1&&key1==0&&key2==1&&key3==1)
{
key=10;
p=p+1;
}
if(key0==1&&key1==1&&key2==0&&key3==1)
{
key=11;
p=p-1;
}
if(key0==1&&key1==1&&key2==1&&key3==0)
{
key=12;
weifen=weifen-0.01;
}
}
GPIO_setHigh(myGpio,GPIO_Number_19);
GPIO_setHigh(myGpio,GPIO_Number_18);
GPIO_setHigh(myGpio,GPIO_Number_17);
GPIO_setLow(myGpio,GPIO_Number_16);
key0=GPIO_getData(myGpio,GPIO_Number_29);
key1=GPIO_getData(myGpio,GPIO_Number_32);
key2=GPIO_getData(myGpio,GPIO_Number_33);
key3=GPIO_getData(myGpio,GPIO_Number_34);
key4=GPIO_getData(myGpio,GPIO_Number_19);
key5=GPIO_getData(myGpio,GPIO_Number_18);
key6=GPIO_getData(myGpio,GPIO_Number_17);
key7=GPIO_getData(myGpio,GPIO_Number_16);
// delay_nop1(g);
if(key4==1&&key5==1&&key6==1&&key7==0)
{
key0=GPIO_getData(myGpio,GPIO_Number_29);
key1=GPIO_getData(myGpio,GPIO_Number_32);
key2=GPIO_getData(myGpio,GPIO_Number_33);
key3=GPIO_getData(myGpio,GPIO_Number_34);
if(key0==0&&key1==1&&key2==1&&key3==1)
{
key=13;
bili=bili-0.1;
}
if(key0==1&&key1==0&&key2==1&&key3==1)
{
key=14;
jifen=jifen-0.1;
}
if(key0==1&&key1==1&&key2==0&&key3==1)
{
key=15;
p=p+0.1;
}
if(key0==1&&key1==1&&key2==1&&key3==0)
{
key=16;
p=p-0.1;
}
}
可以直接使用,不用再加延时了,不会出现都抖动,不知道为什么。我是根据C51的键盘扫描来编写的,用的是句柄和指针的形式。
首先惊讶于这个里出外进的程序是怎样变出来的,这么长……
其次同样惊讶于这个代码为啥就不需要消抖……话说它为啥需要消抖……到底需不需要消抖?
嗯……坐等高手……
你的程序太长,我没看,一是可能你的程序里还有其他东西,可能消抖已经加无意进去了;二是硬件上可能有措施,也就是可能硬件上已经消抖了。
我来到这个世界,就是为了遇见你。在某天我们会相遇,然后在一起,直到最后一起离去。
程序总运行时间是133US左右,最长的延迟是在显示中 ,100US