注册 登录
查看: 202|回复: 2

独立按键除了问题,

[复制链接]
发表于 2014-9-19 21:34:39 | 显示全部楼层 |阅读模式
#define key1 gpio_get(PTA2)
#define key2 gpio_get(PTA6)
#define key3 gpio_get(PTA4)
#define key4 gpio_get(PTD5)


int8 n=0;
uint8 dis[6]={0};
uint32 tmp=5;
void main()
{

    gpio_init(PTA2 ,GPI,0);
    gpio_init(PTA6 ,GPI,0);
    gpio_init(PTA4 ,GPI,0);
    gpio_init(PTA5 ,GPI,0);


   dhport_12864();
   dhlcd_init_12864();


   ad9850_init();
   ad9850_serial_reset();
    while(1)
    {
        if(key1==0)
        {
            DELAY_MS(20);
            if(key1==0)
            {
                while(key1);
                dis[n]++;
                if(dis[n]>9)
                    dis[n]=0;
            }
        }
       if(key2==0)
        {
            DELAY_MS(20);
            if(key2==0)
            {
                while(key2);
                dis[n]--;
                if(dis[n]<0)
                    dis[n]=9;
            }
        }
        if(key3==0)
        {
            DELAY_MS(20);
            if(key3==0)
            {
                while(key3);
                n--;
                if(n<0)
                    n=5;
            }
        }
        if(key4==0)
        {
            DELAY_MS(20);
            if(key4==0)
            {
                while(key4);
                n++;
                if(n>5)
                    n=0;  
            }
        }
        //tmp=dis[0]*100000+dis[1]*10000+dis[2]*1000+dis[3]*100+dis[4]*10+dis[5]*1;

        dhlcd_pos_12864(1,0);
        dhwrite_dat_12864('0');
        dhlcd_pos_12864(2,n);
        dhwrite_dat_12864('0'+dis[n]);
这是部分程序,能看一吗?我没有按下值也在变化


回复

使用道具 举报

发表于 2014-9-19 21:51:07 | 显示全部楼层
建议你用我们的定时扫描按键方法,这样会很稳定的。

你的代码,如果中间处理时间过长,就经常出现漏按按键的
回复 支持 反对

使用道具 举报

发表于 2014-9-19 21:53:22 | 显示全部楼层
另外,你的按键,有没有接外部上拉电阻?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部