2016-06-11 3 views
0

Я работаю над Arduino код и моя программа продолжает давать мне эту ошибку,Arduino, если оператор дает ошибку

ISO C++ forbids comparison between pointer and integer [-fpermissive] 

Я попытался найти в Интернете, чтобы решить эту проблему, но, как решение неправильным или неактуальным. вот где программное обеспечение Arduino говорит проблема,

if((millis - incLastDebounce) > debounceDelay) { 

и если вам нужен остальной код здесь,

#include <LiquidCrystal.h> 

int freq = 0; 
int change = 0; 
const int incPin = 3; 
const int setPin = 2; 
int incButtonState; 
int setButtonState; 
int incPreviousState; 
int setPreviousState; 
int incLastDebounce; 
int setLastDebounce; 
const int debounceDelay = 50; 


LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 
void setup() { 
    // put your setup code here, to run once: 
lcd.begin(16, 2); 
pinMode(setPin, INPUT); 
pinMode(incPin, INPUT); 
lcd.print("Frequency: " + freq); 
} 

void loop() { 
    // put your main code here, to run repeatedly: 
int incReading = digitalRead(incPin); 
int setReading = digitalRead(setPin); 

if(setReading != setPreviousState) { 
    setLastDebounce = millis(); 
} 
if(incReading != incPreviousState) { 
    incLastDebounce = millis(); 
} 

if((millis - setLastDebounce) > debounceDelay) { 

    if(setReading != setButtonState) { 
    setButtonState = setReading; 
    } 
    if(setButtonState == HIGH) { 
    //Okay so here you will do your set lcd voodoo 
    } 
} 

if((millis - incLastDebounce) > debounceDelay) { 
    if(incReading != buttonState) { 
    incButtonState = incReading; 
    } 
    if(buttonState == HIGH) { 
     // here you can put the lcd code 
     change = change + 500; 
     if(change == 10500){ 
     change = 0; 
     } 
    } 

    } 


incPreviousState = incReading; 
setPreviousState = setReading; 
} 

надеюсь, вы можете найти проблему и помочь.

ответ

2

Похоже, что вы потеряли круглые скобки после millis, поэтому вместо вызова функции вы пытаетесь выполнить арифметику с адресом своей памяти.

Это вероятно, будет работать лучше:

if ((millis() - incLastDebounce) > debounceDelay) { 
Смежные вопросы