Hallo zusammen,
ich bin langsam ein wenig am verzweifeln..
Ich arbeite gerade an meiner Steuerung für meinen Stromverteiler und hab eben ein Software-Problem, auf dessen Lösung ich nicht komm:
Ich hab einige Sicherungen, die jeweils mit eine digital-I/O abgefragt werden und 2 mit zwei Pins. Ich hab jetzt eine Klasse für die Sicherungen geschrieben. Ebenso gibt es jeweils eine Klasse für Eingänge und für Ausgänge. Da die Ein- und Ausgänge mit Sicherungen verdrahtet sind, soll die Sicherungsklasse in der Ein- und Ausgangsklasse aufgerufen werden, aber da meckert der Compoiler immer und ich find einfach nicht warum ![]()
fuse.h:
#pragma once
#include "Arduino.h"
#include <Bounce2.h>
class Fuse
{
private:
uint8_t _pinOkay;
uint8_t _pinNOkay;
bool _state;
bool _stateChanged;
bool _secPin;
uint8_t _debounceTime = 10;
Bounce _pinState[2];
bool _alarm;
bool _alarmChanged;
public:
Fuse(uint8_t pinOkay, uint8_t pinNOkay = 100);
void run();
// Getter
bool getState();
bool getStateChanged();
bool getAlarm();
bool getAlarmChanged();
};
fuse.cpp:
#include "fuse.h"
Fuse::Fuse(uint8_t pinOkay, uint8_t pinNOkay = 100)
{
_pinOkay = pinOkay;
_pinNOkay = pinNOkay;
pinMode(_pinOkay, INPUT_PULLUP);
_pinState[0].attach(_pinOkay);
_pinState[0].interval(_debounceTime);
if (pinNOkay != 100)
{
_secPin = true;
pinMode(_pinNOkay, INPUT_PULLUP);
_pinState[1].attach(_pinNOkay);
_pinState[1].interval(_debounceTime);
}
}*/
input.h:
#pragma once
#include "Arduino.h"
#include "fuse.h"
//#include <Bounce2.h>
class Input
{
private:
// Members
Fuse _lsFuse;
bool _stateRelay;
public:
Input(uint8_t pinFuse, uint8_t pinRelay, uint8_t pinCheckL1, uint8_t pinCheckL2, uint8_t pinCheckL3, uint8_t countPole);
void run();
// Setter
bool setRelay(bool state);
// Getter
};
input.cpp:
#include "input.h"
#include "fuse.h"
Input::Input(uint8_t pinFuse, uint8_t pinRelay, uint8_t pinCheckL1, uint8_t pinCheckL2, uint8_t pinCheckL3, uint8_t countPole)
{
_lsFuse = Fuse(pinFuse);
}
void Input::run()
{
_lsFuse.run();
}
(Für die Übersicht hab ich alles nicht relevante weggelassen.)
Ich bekomm folgende Fehlermeldung:
steuerung/fuse.cpp:3:51: warning: default argument given for parameter 2 of 'Fuse::Fuse(uint8_t, uint8_t)' [-fpermissive]
Fuse::Fuse(uint8_t pinOkay, uint8_t pinNOkay = 100)
^
In file included from steuerung/fuse.cpp:1:0:
steuerung/fuse.h:22:5: note: previous specification in 'Fuse::Fuse(uint8_t, uint8_t)' here
Fuse(uint8_t pinOkay, uint8_t pinNOkay = 100);
^~~~
steuerung/input.cpp: In constructor 'Input::Input(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':
input.cpp:4:126: error: no matching function for call to 'Fuse::Fuse()'
Input::Input(uint8_t pinFuse, uint8_t pinRelay, uint8_t pinCheckL1, uint8_t pinCheckL2, uint8_t pinCheckL3, uint8_t countPole)
^
In file included from steuerung/input.h:4:0,
from steuerung/input.cpp:1:
steuerung/fuse.h:22:5: note: candidate: Fuse::Fuse(uint8_t, uint8_t)
Fuse(uint8_t pinOkay, uint8_t pinNOkay = 100);
^~~~
steuerung/fuse.h:22:5: note: candidate expects 2 arguments, 0 provided
steuerung/fuse.h:6:7: note: candidate: constexpr Fuse::Fuse(const Fuse&)
class Fuse
^~~~
steuerung/fuse.h:6:7: note: candidate expects 1 argument, 0 provided
steuerung/fuse.h:6:7: note: candidate: constexpr Fuse::Fuse(Fuse&&)
steuerung/fuse.h:6:7: note: candidate expects 1 argument, 0 provided
Bibliothek Bounce2 in Version 2.71 im Ordner: /home/*/Arduino/libraries/Bounce2 wird verwendet
exit status 1
no matching function for call to 'Fuse::Fuse()'
Wieso kann man Arduino nich einfach mit Python programmieren.. ![]()
Ich hoffe, dass ihr mir weiter helfen könnt.
Vielen Dank im voraus und
liebe Grüße
Fipschen