Hallo,
die Frage hat sich in der IDE ergeben, betrifft aber den Compiler selbst, deshalb stelle ich sie hier:
Es geht um folgenden Code:
und
Der Header ist in diesem Code (für die Marlin-3D-Drucker-Software) immer mit einer Definiton einer Variablen gesichert, um doppelte Aufrufe zu vermeiden.
Der Fehler 'no matching function for call to 'RGB_LED_Class::RGB_LED_Class(int, int, int)' ' wird dabei gemeldet, ich erkenne aber nicht, warum er den Konstruktor in der cpp-Datei nicht anerkennt.
Ne Idee?
Tschüß
Manni
die Frage hat sich in der IDE ergeben, betrifft aber den Compiler selbst, deshalb stelle ich sie hier:
Es geht um folgenden Code:
C++:
void RGB_LED_Class::RGB_LED_Class(int Pin_Red, int Pin_Green, int Pin_Blue)
{
RGB_Pin[red] = Pin_Red;
RGB_Pin[green] = Pin_Green;
RGB_Pin[blue] = Pin_Blue;
RGB_Init(red);
RGB_Init(green);
RGB_Init(blue);
RGB_State[red] = Off;
RGB_State[green] = Off;
RGB_State[blue] = Off;
}
void RGB_LED_Class::RGB_Init(enum Color Couleur)
{
pinMode(RGB_Pin[Couleur], OUTPUT);
digitalWrite(RGB_Pin[Couleur], HIGH);
}
void RGB_LED_Class::RGB_Change(enum Color Couleur, enum Flag Zustand)
{
if(Zustand == Off)
{
digitalWrite(RGB_Pin[Couleur], HIGH);
}
else
{
digitalWrite(RGB_Pin[Couleur], LOW);
}
RGB_State[Couleur] = Zustand;
}
enum Flag RGB_LED_Class::Red_on()
{
RGB_Change(red, On);
}
enum Flag RGB_LED_Class::Green_on()
{
RGB_Change(green, On);
}
enum Flag RGB_LED_Class::Blue_on()
{
RGB_Change(blue, On);
}
enum Flag RGB_LED_Class::Red_off()
{
RGB_Change(red, Off);
}
enum Flag RGB_LED_Class::Green_off()
{
RGB_Change(green, Off);
}
enum Flag RGB_LED_Class::Blue_off()
{
RGB_Change(blue, Off);
}
C++:
#ifndef RGB_ON_ADAP_H
#define RGB_ON_ADAP_H
class RGB_LED_Class
{
public:
enum Flag {On, Off} State;
enum Color {red, green, blue} Farbe;
private:
uint8_t RGB_Pin[3];
enum Flag RGB_State[3];
void RGB_Change(enum Color Couleur, enum Flag Zustand);
void RGB_Init(enum Color Couleur);
public:
enum Flag Red_on();
enum Flag Green_on();
enum Flag Blue_on();
enum Flag Red_off();
enum Flag Green_off();
enum Flag Blue_off();
};
RGB_LED_Class RGB_Led(45,47,32);
#endif //RGB_ON_ADAP_H
Der Fehler 'no matching function for call to 'RGB_LED_Class::RGB_LED_Class(int, int, int)' ' wird dabei gemeldet, ich erkenne aber nicht, warum er den Konstruktor in der cpp-Datei nicht anerkennt.
Ne Idee?
Tschüß
Manni