c - 调试!程序不会运行

标签 c debugging raspberry-pi

我正在尝试运行一个 C 程序,它将等待我按下 4x4 键盘上的按键,然后显示我按下的数字。我的程序运行了一下,但一启动就结束了,而且我找不到我的错误。

 #include <wiringPi.h>
 #include <stdio.h>

 #define COL1     11
 #define COL2     10
 #define COL3     6
 #define COL4     5
 #define ROW1     4
 #define ROW2     3
 #define ROW3     2
 #define ROW4     1

 #define DET      0

 int colnum;
 int rownum;

 int keyinterrupt (void)
 {
      int col[] = {COL1, COL2, COL3, COL4};
      int row[] = {ROW1, ROW2, ROW3, ROW4};
      int reset;
      for(colnum = 0; colnum++; colnum < 4)
      {
           for(reset = 0; reset++; reset < 4)
           {
                digitalWrite(col[reset], 0);
           }

           digitalWrite(col[colnum], 1);

           for(rownum = 0; rownum++; rownum < 4)
           {
                if(digitalRead(row[rownum]))
                {return 0;}
           }
      }
 }

 int main (void)
 {
      pinMode(COL1, OUTPUT);
      pinMode(COL2, OUTPUT);
      pinMode(COL3, OUTPUT);
      pinMode(COL4, OUTPUT);
      pinMode(ROW1, INPUT);
      pinMode(ROW2, INPUT);
      pinMode(ROW3, INPUT);
      pinMode(ROW4, INPUT);

      if(wiringPiISR (DET, INT_EDGE_RISING, &keyinterrupt) < 0)
      {
           printf("Unable to setup ISR");
           return 1;
      }

      while(1)
      {
           while(!DET)
           {
                delay(1);
           }

           printf("The key pressed was at Col:%i Row:%i", colnum, rownum);
      }
      return 0;
 }

最佳答案

您已将 for 循环语法混淆了三次。

for(colnum = 0; colnum++; colnum < 4)

第二个条目应该是条件,第三个条目是每次迭代结束时要做的事情:

for (colnum = 0; colnum < 4; colnum++)

关于c - 调试!程序不会运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16404116/

相关文章:

c++ - 关于调试核心文件C++/linux的一些基本问题?

c# - VS2010 调试器陷入困境

node.js - Raspberry PI 上 NodeJS 中的长 setTimeout

node.js - 构建 Node.js 出现错误 : Node. js 配置错误:找不到可接受的 C 编译器

c - 如何设置输出文件模式权限(rw-rw-rw-)

哈希中的冲突检查

java - 当我尝试使用调试器时会出现scanner.java选项卡

docker - 无法在 docker-compose 中运行 pihole

c - 如果管道已满,写入管道的进程是否会阻塞?

c - hh 和 h 格式说明符需要什么?