Welches bounce.h verwendest du?
In dem, das ich auf die schnelle gefunden habe, versteht die Klasse
Bounce genau diese Dinge (Auszug aus dem bounce.h)
1 | class Bounce
|
2 | {
|
3 |
|
4 | public:
|
5 | // Create an instance of the bounce library
|
6 | Bounce();
|
7 | // Attach to a pin (and also sets initial state)
|
8 | void attach(int pin);
|
9 | // Sets the debounce interval
|
10 | void interval(unsigned long interval_millis);
|
11 | // Updates the pin
|
12 | // Returns 1 if the state changed
|
13 | // Returns 0 if the state did not change
|
14 | bool update();
|
15 | // Returns the updated pin state
|
16 | uint8_t read();
|
17 | ...
|
insbesondere gibt es keinen Konstruktor, der eine Pinnummer oder ein
2-tes Argument übernehmen würde, so wie du es hier
1 | Bounce bouncer = Bounce( BUTTON,5 );
|
voraussetzt. Mal ganz abgesehen davon, dass das völlig unüblich
geschrieben ist. Welchen Sinn soll es haben, sich erst mal ein
temporäres Objekt zu erzeugen, welches dann mittels Copy-Konstruktor
dazu benutzt wird, das echte Objekt zu initialisieren. Aber ok, named
return value optimization ist schon erfunden und behandelt diesen Fall.
Normalerweise würde man das eher so schreiben ...
1 | Bounce bouncer( BUTTON,5 );
|
... aber wie schon gesagt, einen derartigen Konstruktor gibt es nicht in
der Klasse, die auch auf http://playground.arduino.cc/code/bounce
gefunden habe. Und was es nicht gibt, kannst du auch nicht benutzen. Was
es hingegen in der Klasse gibt, sind die Funktionen "attach" und
"intervall".
Aber, das alles unter der Voraussetzung, dass du auch diese Klasse
benutzt und nicht irgendeine andere, die zufällig gleich heißt.