Hey Sisor, und wieder herzlichen Dank für das Tutorial! Ich werde es nutzen um meine rudimentären C-Kenntnisse endlich auf rudimentäre C++-Kenntnisseaufzustocken wenn ich mal wieder Zeit für den Arduino hab'...
Werbung
Hey Sisor, und wieder herzlichen Dank für das Tutorial! Ich werde es nutzen um meine rudimentären C-Kenntnisse endlich auf rudimentäre C++-Kenntnisseaufzustocken wenn ich mal wieder Zeit für den Arduino hab'...
Kein Problem, ich hatte mich mit dem Thema gerade beschäftigt und dachte, ich fass das Gelernte mal für mich und andere zusammen. Interessant ist, dass jedes der 5 Programme (Schritt 2 - 6) die gleiche Funktionalität aufweist. Je komplexer ein Programm wird, desto mehr macht eine modulare, objektorientierte Herangehensweise Sinn.
D:\Eigene Dateien\Arduino\libraries\RGBLed\RGBLed.cpp:9:6: error: prototype for 'void RGBLed::setRGB(int, int, int)' does not match any in class 'RGBLed'
void RGBLed::setRGB(int r, int g, int b) {
^
In file included from D:\Eigene Dateien\Arduino\libraries\RGBLed\RGBLed.cpp:1:0:
D:\Eigene Dateien\Arduino\libraries\RGBLed\RGBLed.h:15:7: error: candidate is: void RGBLed::setRGB(byte, byte, byte)
void setRGB(byte r, byte g, byte b) ;
^
Fehler beim Kompilieren.
Der Compiler sagt dir doch eh schon wo das Problem liegt
Im header File (.h) ist setRGB(byte r, byte g, byte b); mit bytes definiert. Im .cpp ist gibts die Funktion aber nur mit ints als Parameter ausprogrammiert. Das ist vermutlcih einfach ein Copy&Paste Fehler des Autors, ändere die ints zu bytes und es sollte funktionieren.
Vielen Dank für die Rückantwort.0
Habe das bereits geändert so ´dass der Funktionsrumpf und die Implementierung über Byte arbeiten.
Wollte gerne noch bei meinem Projekt in die CPP-Datei die IRremote.h einbinden.
Wo kann man dazu noch was finden?
Derzeit kommt das dabei raus:
--------------
IRControl.cpp:1:22: fatal error: IRremote.h: No such file or directory
#include <IRremote.h>
^
compilation terminated.
Fehler beim Kompilieren.
--------------
Meine Klasse soll IRControl heißen und Steuercodes auf den Seriellen Monitor bzw. einen INT-Wert zurückgeben.
Hatte da schon ein Programm fertig, welches ich jetzt mit diesen Tutoriell in eine Klasse stecken möchte.
Der Compiler meckert hier das er diese Datei nicht finden kann, bist du dir sicher das du die Library richtig installiert hast? Funktioniert das einbinden bei anderen Programmen?IRControl.cpp:1:22: fatal error: IRremote.h: No such file or directory
Danke nochmal für die Rückantwort.
Das Einbinden über <IRremote.h> hat nicht geklappt.
Habe die IRremote.h und die CPP sowie die zugehörigen Dateien in mein Library-Verzeichnis "IRControl" kopiert.
In der IRControl.cpp habe ich dann oben gleich diese direkt so eingebunden:
#include "IRControl.h"
#include "IRremote.h"
#include<Arduino.h>
Dann war es noch wichtig alle weiteren Dateien über Drag&Drop auf die Arduino-IDE zu ziehen damit die gefunden werden.
Jetzt läuft es soweit.
Das Einzige was mich noch etwas nervt, ist das im Hauptprogramm das Objekt sofort
instanziiert wird. In Java kann man es immer erst deklarieren und danach mit 'new' instanziieren.
Habe es jetzt mit static in den Loop() gesetzt. Da sollte es nur einmal erzeugt werden und ist verfügbar.
Vorerst ist es aber mal soweit ok. Hatte gegen 2009 aufgehört C++ zu programmieren.
Lesezeichen