C Arduino-计数器:50:错误:赋值的左操作数需要左值

C Arduino-计数器:50:错误:赋值的左操作数需要左值,c,arduino,C,Arduino,这是我的代码,是给我的Sainsmart Arduino Uno的: void buttonChange() { if (digitalRead(button) == LOW) { ltp2 = ltp; ltp = millis(); if (number == 0 || ltp -= ltp2 > 500){ number += 1; displayNumber(); } } } 我收到这个错误: counter.in

这是我的代码,是给我的Sainsmart Arduino Uno的:

void buttonChange() {
  if (digitalRead(button) == LOW) {
    ltp2 = ltp;
    ltp = millis();
    if (number == 0 || ltp -= ltp2 > 500){ 
      number += 1;
      displayNumber();
    }
  }
}
我收到这个错误:

counter.ino: In function 'void buttonChange()':
counter:50: error: lvalue required as left operand of assignment

谢谢你的帮助。

你需要一些括号:

if (number == 0 || ltp -= ltp2 > 500){ 
if (number == 0 || ltp -= ltp2 > 500){ 
将其更改为:

if (number == 0 || (ltp -= ltp2) > 500){ 
if (number == 0 || ltp - ltp2 > 500){ 

你不想改变什么是ltp。用减号就行了

将其更改为:

if (number == 0 || (ltp -= ltp2) > 500){ 
if (number == 0 || ltp - ltp2 > 500){ 

什么是
digitalRead
?@haccks这是一个函数。您需要提供声明
ltp2
ltp
number
的代码。您可能需要包括所有的
counter.ino
,以便我们可以看到哪一行是第50行。`谢谢。我发现了错误。我需要将-=更改为-,因为我不想更改int.Haacks,digitalRead是一个arduino函数,用于测试管脚的输入。