我一直忙于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();
}
}
}
}
答案 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帧执行一次。