C++ 检查除法是否给出余数0

C++ 检查除法是否给出余数0,c++,arduino,division,C++,Arduino,Division,您好,我正在编写一个arduino程序,我必须检查一个变量除以60是否得到余数0。此变量每秒增加1。我试着写作 if (variable % 60 == 0){ ... } 但即使变量是3,6,9,它也能工作 我的确切密码是: if (millis()/1000 != prevsec){ prevsec = millis()/1000; if (millis() % 60 == 0){ Serial.print("light"); Serial.prin

您好,我正在编写一个arduino程序,我必须检查一个变量除以60是否得到余数0。此变量每秒增加1。我试着写作

if (variable % 60 == 0){
...
}
但即使变量是3,6,9,它也能工作

我的确切密码是:

    if (millis()/1000 != prevsec){
    prevsec = millis()/1000;
    if (millis() % 60 == 0){
      Serial.print("light");
  Serial.println(analogRead(0));
  tempC = analogRead(1);           //read the value from the sensor
  tempC = (5.0 * tempC * 100.0)/1024.0;  //convert the analog data to temperature
  Serial.print("tempin");
  Serial.println((byte)tempC); 
    }
    Serial.println(millis()/1000);
  }
请告诉我我做错了什么
提前谢谢

看起来好像你在除以60毫秒。您应该划分秒数。

值得阅读您正在使用的函数的文档。或者至少凭直觉想想。。。你希望一个名为毫秒的函数返回什么单位的时间?明白了吗?他显然知道它们是什么单位,因为他除以1000来设置prevsec。好的,伙计们,谢谢,我刚刚忘记除以1000来获得秒。所以,你应该避免多次读取毫秒,因为它当然可以在两次调用之间改变。对其采样一次,然后将该变量用于函数的其余部分。在您的情况下,您甚至可以转换为秒一次,然后重新使用。