Forum: Mikrocontroller und Digitale Elektronik class in Arduino macht Fehler


von habu (Gast)


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;
  }
}

von habu (Gast)


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'

von Mark .. (mork)


Lesenswert?

Wird Arduino nicht in C++ programmiert? Der gepostete Code ist nämlich 
Java.

Davon wird wohl auch der Fehler stammen.

MfG Mark

von Marwin (Gast)


Lesenswert?

habu schrieb:
> Warum bei Arduino Fehler und bei Processing nicht?

Das ist kein reproduzierbares Beispiel. Wie soll man da den Fehler 
finden?

von habu (Gast)


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. :(

von habu (Gast)


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;
  }
}

von Karl H. (kbuchegg)


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.

von was? (Gast)


Lesenswert?

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

The Arduino language (based on Wiring) is implemented in C/C++, and 
therefore has some differences from the Processing language, which is 
based on Java.

http://arduino.cc/en/Reference/Comparison

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.