仅打印一次数据

时间:2016-11-15 04:04:49

标签: c

我需要做一些"开 - 关"按钮与我的项目。 当没有按下按钮时,它应该打印

  

停止

如果按下

  

开始

问题是,当我没有按下它时,它会保持打印状态,当我继续按下按钮时,它会一直停止。我希望它只打印一次数据。 更多的细节,我需要的是,按钮按住“开始”#39;位置直到我再次按下它。

这是我的代码

{ 
  int main (void)
  int TestM4;

  while(1)
  {
    if (!(PORTJ_IN&PIN1_bm)) //test m4
     {
         testM4 = 1;
         printf("%d\n", testM4);
     }
     else
     {
         testM4 = 0;
         printf("%d\n", testM4);
     }

2 个答案:

答案 0 :(得分:0)

while(1)

这会连续运行while循环。

因此,它检查按钮,打印出语句,然后直接返回再次检查它们。

要仅运行一次,完全删除while循环,但程序将很快结束。

或许,请看ways to pause the program

答案 1 :(得分:0)

我不知道所有代码,因此while(1)可能是好的或坏的代码,但您可以测试为标志来更改它并仅打印一次。

while(1)
{
    if (!(PORTJ_IN&PIN1_bm)) //test m4
    {
         if(testM4 != 1) // status as button up
         {
             testM4 = 1;
             printf("%d\n", testM4);
         }
    }
    else
    {
         if(testM4 != 0)
         {
             testM4 = 0;
             printf("%d\n", testM4);
         }
    }
}