Arduino - Warten in einem Objekt

OP #4161662
Lesenswert?

Guten Tag,

derzeit bastle ich an einer Möglichkeit mehrere I2C Displays 
anzusprechen.
Was ich mir bisher mal gebastelt habe, ist angehängt.
Ursprünglich war es ein Programm, da ich damit getestet habe.
Nach fortschreitender Entwicklung habe ich mich entschieden eine Klasse 
daraus zu machen.
Mein Problem ist nun leider, dass ich nicht weiss, wie ich in diese 
Klasse die nötigen Funktionen zum Warten bekomme.
z.B. delay, besser wäre millis(), um mir in der Klasse eine eigene 
Kleine Warteprozedur zu bauen.

Habe bei mir mal nachgeforscht, die Funktionen werden in der Arduino.h 
gelistet, aber sobald ich die Einbinde will er auch eine Setup und 
Loop-routine haben :-/

Gibts da irgendeinen Trick oder eine Lib die sich darauf spezielisiert 
hat?
Mag idealerweise auch nicht noch massig Zeilen einbauen um auf 
Taktfrequenz etc. zu Testen und das Delay dann darauf aufbauend 
nachzubauen.

MfG,
mossi
OP #4161785
Lesenswert?

Habe mal die Arduino.h wieder eingebunden und leere funktionen für
setup() und loop()
gemacht.

Lässt sich zwar kompilieren, aber hat das nicht evtl irgendwelche 
negativen effekte?
Immerhin wird man eine main.cpp haben, welche die i2cdisplay.cpp 
einbindet.
Da die Arduino.h über irgendwelche Programmteile dann scheinbar die 
setup() und loop() aufruft, werden dann die setup und loop in 
i2cdisplay.cpp auch laufen?
Weil das wäre ja nicht sehr wünschenswert.

MfG mossi
Angehängte Dateien:
Gast #4161787
Lesenswert?

Vorschlag:

3 Dateien!!! (im selben Verzeichnis)
Eine ino, mit dem Hauptprogram inc. setup() und loop()
Eine i2cdisplay.h und eine i2cdisplay.cpp
Das wäre eine saubere Nummer.
Und dann klappt das auch.

> Immerhin wird man eine main.cpp haben,
Von mir aus main.ino, aber nicht main.cpp
OP #4161820
Lesenswert?

Bisher hatte ich keine .hpp

Habe mal eine gebaut, da ich bisher noch nicht soo viel Ahnung von 
Headerfiles habe, bin ich nicht ganz sicher ob das so richtig ist.
Hab dementsprechend auch die .cpp angepasst.

Leider meldet mir mein lcd.ino beim Kompilieren es findet die .hpp nicht 
-.-
Angehängte Dateien:
#4161881
Lesenswert?

Malte O. schrieb:

> Leider meldet mir mein lcd.ino beim Kompilieren es findet die .hpp nicht
> -.-

Dann solltest du dich mal darüber schlau machen, wie man in der Arduino 
Umgebung sog. Libraries einbindet. Die müssen auf bestimmte 
Verzeichnisse.
Dann werden sie auch gefunden.
Jedesmal, wenn du dir aus dem Web für deinen Arduino eine fertige 'Lib' 
holst, holst du dir in Wirklichkeit ein cpp und ein hpp File. Das wird 
in der Umgebung installiert, indem es einfach an eine bestimmte Stelle 
im Dateibaum kopiert wird. Ob man das dann auch noch irgendwo 
registrieren muss, weiss ich nicht, aber ich programmier ja auch nicht 
Arduino.

Such dir halt mal einfach im Web irgendeine Arduino Komponente und sieh 
dir an, wie die zu 'installieren' ist. Und genau dasselbe machst du auch 
mit deinem Zeugs.
OP #4161882
Lesenswert?

Habe mir das nochmal angeguckt und überarbeitet.

Langsam komme ich glaube ich dahinter, wie die Headerfiles auszusehen 
haben.

Vielen Dank auf jeden Fall, dass ihr euch das anguckt.

lcd.ino: In function 'void setup()':
lcd.ino:11:7: error: invalid user-defined conversion from 'MOLCD*' to 
'const MOLCD&' [-fpermissive]
In file included from lcd.ino:2:0:
i2cdisplay.h:33:5: note: candidate is: MOLCD::MOLCD(int, int, int) <near 
match>
     MOLCD(int id,int lines=2,int chars=16);

MfG
mossi
Angehängte Dateien:
#4161889
Lesenswert?

1
MOLCD lcd1;
2

3
void setup(){    
4
  Serial.begin (115200);
5
  delay(15);
6
  lcd1=new MOLCD(0x3f);
7
}
8
...

wieso 'new'. lcd1 IST bereits ein Objekt. Das muss nicht mehr angelegt 
werden.
1
MOLCD lcd1( 0x3f );

sagte ich schon, dass du Literatur brauchst? Das gilt bei C++ noch viel 
mehr als es bei C gilt.
#4161897
Lesenswert?

Malte O. schrieb:
> Kannst du gute C++-Literatur empfehlen?

Für C++ gibt es massenhaft Literatur.
Normalerweise würde ich sagen: geh am Samstag in eine Buchhandlung, 
blättere die vorhandenen Bücher durch, versuch vielleicht man eines der 
Kapitel vom Anfang zu lesen und finde raus, mit wessen Stil du am besten 
zurecht kommst.
Die Amazon Rezension lesen, ist auch hilfreich.

Ich persönlich hab mit dem Stroustrup angefangen. Aber das war vor 20 
Jahren. Seit dem hat sich am Buchsektor einiges verändert.

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