查看: 754|回复: 3

[求助] 使用按鍵控制程序的啓動

[复制链接]

1

主题

0

好友

54

积分

童生

Rank: 2

  • TA的每日心情
    郁闷
    2016-5-12 17:57
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2016-5-12 18:22:43 |显示全部楼层
    現在想用一個按鍵來控制程序的啓動與關閉。

    t.jpg


    按鍵接的是Raspberry的GPIO6.
    當按鍵按一下的時候,GPIO接地,程序開始運行。
    當再按一次的時候,程序停止。

    現在的問題是,如果按一次按鍵的話,GPIO僅僅接地一瞬間后就又被拉高了。程序衹執行了一次就停止了,不能繼續循環下去。
    int main(){
            ADC_Init();
            while(true){
                    if(digitalRead(KEY) == 0){                  //GPIO6 接地,按鍵按下
                            ADC();                                        //開始讀數據
                            printf("%d", voltage);
                    }
            }
    }

    并且根本實現不了再按一次程序停止。無奈了。。。。。

    請問如何可以達到這樣的要求?

    謝謝!






    回复

    使用道具 举报

    138

    主题

    7

    好友

    1888

    积分

    超级版主

    Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2016-7-28 15:40
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2016-5-13 10:56:13 |显示全部楼层
    大概整理一下我跟大神讨论的过程:
    1.需要额外一个变量  每次检测到按下  就翻转 的一个变量(所以这个代码需要再定义一行,然后用来检测判断,这个程序就只是一个过程,所以只运行一次)
    2.if(digitalread(key)==0)  按下过=1;
    if(按下过==1){
    ADC( )......
    }、
    3.实际上  还可以稍微扩展一下,做成  第一次按下 就开始,再按一次,又停止。当然 这个  按下过 变量  要在 while 之前,初始化成 0 .
    4.话说这个框架不是很好,缺点是  如果 是在 adc执行的时候按下 或 在 printf 执行的时候按下,会木有响应。
    5.其实还有其他问题。 比如   你那个 按键检测的函数。是否做了防抖,是否做了  释放检测 。是否有 长按  短按  的区分。因此 这类的设计 通常需要某种并行机制来解决。比如 ADC的 dma方式。比如 按键的中断方式。才能让两者相互不影响。
    回复

    使用道具 举报

    138

    主题

    7

    好友

    1888

    积分

    超级版主

    Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2016-7-28 15:40
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2016-5-13 10:56:58 |显示全部楼层
    还有个大神让你先点LED灯,从基础的开始
    回复

    使用道具 举报

    1

    主题

    0

    好友

    54

    积分

    童生

    Rank: 2

  • TA的每日心情
    郁闷
    2016-5-12 17:57
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2016-5-18 13:54:31 |显示全部楼层
    yerun 发表于 2016-5-13 10:56
    大概整理一下我跟大神讨论的过程:
    1.需要额外一个变量  每次检测到按下  就翻转 的一个变量(所以这个代码 ...

    多謝解答,

    我這幾天已經開始按您的方法來繼續加工了一下。

    我在程序前也加了防抖測試,但是現在按下后還是有點小問題。稍後我把代碼貼出來。
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /5 下一条


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-10 16:53 , Processed in 0.155270 second(s), 13 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部