Hallöchen ich habe ein Problem die Twi Schnittstelle bei meinem Arduino Mega zum laufen zu bringen. Kennt sich da jemand aus damit?
Was bedeutet diese Fehlermeldung? twi.c:623: error: attempt to use poisoned "SIG_2WIRE_SERIAL" SIGNAL(SIG_2WIRE_SERIAL) ^ attempt to use poisoned "SIG_2WIRE_SERIAL"
Jens schrieb: > twi.c:623: error: attempt to use poisoned "SIG_2WIRE_SERIAL" > SIGNAL(SIG_2WIRE_SERIAL) Uralt-Code aus den Untiefen des Internets für völlig veraltete Versionen der avr-libc. Seit Jahren wird ISR() statt SIGNAL() benutzt. TWI_vect müsste der Ersatz für SIG_2WIRE_SERIAL sein.
Wieso hast du dieses Problem überhaupt? In den Arduino Code Untiefen gibt es doch sicher auch eine fix&fertige TWI Klasse. https://www.arduino.cc/en/Reference/Wire
:
Bearbeitet durch User
Hat jemand eine aktuelle Version der folgenden Dateien? Ich würde die Wire.h / Wire.cpp und die twi.h und twi.c benötigen. Danke für eure Hilfe
Ich dachte ja auch das was ich gefunden habe ich die Version die auch die aktuellste ist.
Ich dachte ja auch,dass das was ich gefunden habe die aktuellste Version ist. Reicht es denn nur die oben genannten im Namen zu ändern?
Warum wird denn nun dieser Fehler erzeugt? Wire\Wire.cpp.o: In function `TwoWire::available()': C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire/Wire.cpp:210: multiple definition of `TwoWire::available()' Wire.cpp.o:C:\Users\Admin\AppData\Local\Temp\build6555287835592467589.tm p/Wire.cpp:369: first defined here Wire\Wire.cpp.o: In function `TwoWire::available()':
Steht doch da: "multiple definition" Du bindest die Wire-lib zweimal ein, einmal über dein Arduino-Projekt die Version die mit deiner Arduino-Installation kommt, und einmal deine eigene Version. Zwei Dateien, die Funktionen mit identischen Namen definieren, vertragen sich nun mal nicht. Eigentlich müsste bei einer aktuellen Arduino IDE aber auch eine aktuelle wire.cpp beiliegen...
Wie verhindere ich denn, dass der Compieler nur eine dieser Dateien und nicht zwei included? Soll ich meine Datei aus dem Projektordnen entfernen? Ja mich wundert das ja auch, dass das so eine alte Version ist. Hab die Arduion Software erst vor ein paar Tagen neu installiert um genau diesen Fehler auszuschließen. Scheinbar fehlt aber in der Library die twi... oder?
Ich benutze zu Hause auch den Arduino Mega mit I2C bzw. TWI und habe dafür keine Library benutzt sondern die entsprechenden Routinen selbst geschrieben. War auch für einen Hobbybastler wie mich nicht ganz so schwer, es gibt hier auf dieser Seite ein Tutorial zu I2C. Das und die Datenblätter der zu kontaktierenden Slaves reichen, um das selbst zu programmieren. Außerdem weiß man danach, was konkret auf dem Bus abgeht. Ich habe leider im Moment keine Zeit das Tutorial zu suchen oder detaillierter zu antworten. Vielleicht wäre das auch eine Option.
Ich verstehe das Problem nicht! Die Arduino Umgebung hat die Wire Lib an Bord. Da muss keine Datei kopiert werden. Und diese tuts mit dem Mega! getestet
Ich habe leider im Moment keine Zeit das Tutorial zu suchen oder detaillierter zu antworten. Vielleicht wäre das auch eine Option. ja das wäre praktisch
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.