multiple definition of vector 7

Hallo zusammen!
Ich möchte mit meinem Arduino Nano die IRremote.h, die PCM.h und die Servo.h library benutzen.
Zunächst habe ich nur die Servo.h und die PCM.h library benutzt. Da bin ich dann auf den Fehler: multiple definition of vector 11 gekommen. Um das zu umgehen habe ich mir dann die FlagPCM.h library installiert und dadurch wieder einen Timer frei gehabt für die Servo.h library. Ich bin auch auf die millis() Funktion angewiesen sodass ich auch den Timer nicht umfunktionieren kann. Gibt es eine Möglichkeit alle FUnktionen umzusetzen? Zum Beispiel den Timer, den die PCM library benötigt freizugeben, wenn kein Ton abgespielt wird? Ton und Fernbedienung, sowie Ton und Servo werden nie zeitgleich angesteuert. Da liegen immer einige Sekunden zwischen.

Nicht wundern der Code ist noch nicht fertig es sind Noch 7 Segmentanzeigen über Schieberegister angeschlossen und die Remote funktionen sind auch noch nicht drinnen. Das ganze wir eine Punktetafel zum Tischtennis spielen.

MfG
Moritz

Tischtennisplatt.ino (91.6 KB)

millis() benötigt Timer0

Servo.h läuft auf Timer1, da es einen 16 Bit Timer braucht

FlagPCM.h verwendet Timer2

Der Atmega328 hat aber nur 3 Timer. Bei IRremote kann man wählen aber es ist einfach nichts mehr frei. Es gibt auch Prozessoren mit mehr Timern.

Mehrfachverwendung ist problematisch. Theoretisch geht das. Aber die Libraries sind für sowas nicht gedacht. Da werden die Timer i.d.R. einmal beim Einbinden der Bibliothek initialisiert.

Alternativ könntest du IRRemote mit einem zusätzlichen Controller z.B. einem ATtiny85 aufbauen und mittels I2C deinen Arduino steuern.

Danke für die schnellen antworten! Ich denke ich werde es einfach über einen Doppelklick des Knopfes realisieren.

flitzpiepe346:
Danke für die schnellen antworten! Ich denke ich werde es einfach über einen Doppelklick des Knopfes realisieren.

Ok, kann auch funktionieren. Vergiss das Entprellen des Tasters nicht.