Pixy CMUCAM5开源示例代码模数操作

时间:2015-04-15 07:57:49

标签: c arduino modulo

我一直忙于PIXYCAM和Arduino Uno,我已从他们的网站下载了以下代码。现在有一个(i%50)操作,我不知道它的作用是什么?有人可以请我解释这部分代码吗?

    #include <SPI.h>
    #include <Pixy.h>
    Pixy pixy;
    void setup()
    {
       Serial.begin(9600);
       Serial.print(“Starting...\n”);
       pixy.init();
    }
    void loop()
    {
       static int i = 0;
       int j;
       uint16_t blocks;
       char buf[32];
       blocks = pixy.getBlocks();
       if (blocks)
       {
          i++;
          if (i%50==0)
          {
             sprintf(buf, “Detected %d:\n”, blocks);
             Serial.print(buf);
             for (j=0; j<blocks; j++)
             {
                sprintf(buf, “ block %d: “, j);
                Serial.print(buf);
                pixy.blocks[j].print();
             }
          }
       }
    }

2 个答案:

答案 0 :(得分:1)

当i是50的整数倍时,它执行if子句的内容,因此当i = 50,100,150,...时,表达式为真。

我对PIXYCAM一无所知,但代码似乎偶尔会打印一组块...

答案 1 :(得分:0)

 i++;
 if (i%50==0)  

每隔50帧执行此操作(打印),因为每帧打印都会使Arduino陷入困境。

%符号是i / 50的剩余部分,换句话说,i mod 50.这意味着代码每隔50帧执行一次。