class in Arduino macht Fehler

Gast #2714710
Lesenswert?

Folgedes Problem: Ich möchte einen code, der unter Processing tadellos 
läuft auf einem Arduino laufen lassen. Komischer Weise kommt bei der 
Class, die ich definiere Fehler, die ich nicht verstehe. Warum bei 
Arduino Fehler und bei Processing nicht?

Hier der Code:

Cell[][] cell = new Cell[20][20];

//...

class Cell {
  int x, y, v, h, farbe, sample;

  Cell(int x, int y, int v, int h, int farbe, int sample){
    this.x = x;
    this.y = y;
    this.v = v;
    this.h = h;
    this.farbe = 0;
    this.sample = 0;
  }

  void setFarbe(int neueFarbe){
    this.farbe = neueFarbe;
  }
  void setSample(int sample){
    this.sample = sample;
  }

  void toggle_play(){
    if(this.farbe != 1)
      this.farbe = 1;
    else
      this.farbe = 0;
  }
}
Gast #2714713
Lesenswert?

und hier einige der Fehlermeldungen:

error: expected constructor, destructor, or type conversion before 
'cell'
error: 'cell' was not declared in this scope
error: expected type-specifier before 'Cell'
Gast #2714749
Lesenswert?

nein, Arduino wird mit einer sehr ähnlichen IDE geschrieben wie 
Processing. Und auch in Java.
Die Unterschiede sind in der draw() repektive loop() Funktion und 
natürlich diversen Funktionen, die sich nur auf die Fensterumgebung 
beziehen, wie size() für die Fenstergrösse oder stroke() für die 
Farbwahl. und es gibt den Dateityp color nicht...
Also ein paar Unterschiede bestehen schon, aber es ist sehr, sehr 
ähnlich.

Nur class macht da wohl einen weiteren Unterschied. :(
Gast #2714758
Lesenswert?

Marwin schrieb:
> Das ist kein reproduzierbares Beispiel. Wie soll man da den Fehler
> finden?

Der folgende Code ist reproduzierbar. So in Arduino gepastet und es 
sollte laufen. So kommen auch alle Fehler, die mir zu schaffen machen...


Cell[][] cell = new Cell[20][20];

void loop(){
  cell[1][1].setFarbe(2);
}

class Cell {
  int x, y, v, h, farbe, sample;

  Cell(int x, int y, int v, int h, int farbe, int sample){
    this.x = x;
    this.y = y;
    this.v = v;
    this.h = h;
    this.farbe = 0;
    this.sample = 0;
  }

  void setFarbe(int neueFarbe){
    this.farbe = neueFarbe;
  }
  void setSample(int sample){
    this.sample = sample;
  }

  void toggle_play(){
    if(this.farbe != 1)
      this.farbe = 1;
    else
      this.farbe = 0;
  }
}
#2714792
Lesenswert?

habu schrieb:
> nein, Arduino wird mit einer sehr ähnlichen IDE geschrieben wie
> Processing. Und auch in Java.

Moment.
Vielleicht sollten wir erst mal klären, was du unter
'Arduino' bzw. 'Processing' verstehst.

Die meisten (die übrigens nicht Arduino programmieren), sehen das 
wahrscheinlich so wie ich:

'Arduino'    der Teil deines Gesamtsystems, welcher am µC läuft
'Processing' der Teil deines Gesamtsystems, welcher am PC läuft

Wenn das so stimmt ('Arduino' - µC; 'Processing' - PC), dann stimmt 
deine Aussage definitv nicht. Es sei denn, es gibt seit neuestem eine 
Java-Runtime für die Arduino Hardware. Aber meines Wissens wird der 
µC-Teil beim Arduino System immer noch in C++ programmiert.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren