Problem mit TinyWireS

Hallo zusammen,

ich habe mal wieder ein Problem…

Und zwar funktioniert bei mir die TinyWireS leider nicht…

wenn ich das in mein Sketch einfüge, läßt der Sketch sich nicht hochloden bzw bleibt ewig bei “Sketch wird komplimiert” stehen…

#define I2C_SLAVE_ADDRESS 0x03 // the 7-bit address (remember to change this when adapting this example)
#include <TinyWireS.h>
#ifndef TWI_RX_BUFFER_SIZE
#define TWI_RX_BUFFER_SIZE (64)
#endif

gibts den noch Alternativen ?

ich würde gerne vom ATtiny4313 was an den Adruino bzw später ATmega senden

Bei mir sieht das gleich aus und compiliert ohne Fehler:

#define I2C_SLAVE_ADDRESS 0x03 // the 7-bit address (remember to change this when adapting this example)
// Get this from https://github.com/rambo/TinyWire
#include <TinyWireS.h>
// in TinyWireS\usiTwiSlave.h auf 64 Byte geaendert
#ifndef TWI_RX_BUFFER_SIZE
#define TWI_RX_BUFFER_SIZE ( 64 )
#endif

In usiTwiSlave.c (Juni 2014) folgende Änderung:

/*  if ( !( PIN_USI & ( 1 << PIN_USI_SDA ) ) ) http://www.mikrocontroller.net/topic/38917 Datum: 06.11.2014 18:47 */
  if ( !( PIN_USI & ( 1 << PIN_USI_SCL ) ) )

Dnake für die Antwort !

auch auf nem ATtiny4313 ? habs auf 8 und 1 MHZ probiert

Ja 4313, aber nur compiliert, nicht hochgeladen. Ich habe den Sketch von meiner Kombi LCD-ATtiny4313 genommen. 1 MHz oder 8 MHz ist egal.

ok. das kompilieren läuft jetzt weiter, daür kommt eien fehlermeldung:

D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c: In function ‘usiTwiSlaveInit’:
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:313:3: error: ‘DDR_USI’ undeclared (first use in this function)
DDR_USI |= ( 1 << PORT_USI_SCL ) | ( 1 << PORT_USI_SDA );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:313:3: note: each undeclared identifier is reported only once for each function it appears in
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:313:21: error: ‘PORT_USI_SCL’ undeclared (first use in this function)
DDR_USI |= ( 1 << PORT_USI_SCL ) | ( 1 << PORT_USI_SDA );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:313:45: error: ‘PORT_USI_SDA’ undeclared (first use in this function)
DDR_USI |= ( 1 << PORT_USI_SCL ) | ( 1 << PORT_USI_SDA );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:316:3: error: ‘PORT_USI’ undeclared (first use in this function)
PORT_USI |= ( 1 << PORT_USI_SCL );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:339:18: error: ‘USI_START_COND_INT’ undeclared (first use in this function)
USISR = ( 1 << USI_START_COND_INT ) | ( 1 << USIOIF ) | ( 1 << USIPF ) | ( 1 << USIDC );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c: In function ‘USI_START_VECTOR’:
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:420:3: error: ‘DDR_USI’ undeclared (first use in this function)
DDR_USI &= ~( 1 << PORT_USI_SDA );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:420:22: error: ‘PORT_USI_SDA’ undeclared (first use in this function)
DDR_USI &= ~( 1 << PORT_USI_SDA );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:429:10: error: ‘PIN_USI’ undeclared (first use in this function)
( PIN_USI & ( 1 << PIN_USI_SCL ) ) &&
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:429:27: error: ‘PIN_USI_SCL’ undeclared (first use in this function)
( PIN_USI & ( 1 << PIN_USI_SCL ) ) &&
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:431:30: error: ‘PIN_USI_SDA’ undeclared (first use in this function)
!( ( PIN_USI & ( 1 << PIN_USI_SDA ) ) )
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:477:15: error: ‘USI_START_COND_INT’ undeclared (first use in this function)
( 1 << USI_START_COND_INT ) | ( 1 << USIOIF ) |
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c: In function ‘USI_OVERFLOW_VECTOR’:
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:155:3: error: ‘DDR_USI’ undeclared (first use in this function)
DDR_USI |= ( 1 << PORT_USI_SDA );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:515:9: note: in expansion of macro ‘SET_USI_TO_SEND_ACK’
SET_USI_TO_SEND_ACK( );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:155:21: error: ‘PORT_USI_SDA’ undeclared (first use in this function)
DDR_USI |= ( 1 << PORT_USI_SDA );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:515:9: note: in expansion of macro ‘SET_USI_TO_SEND_ACK’
SET_USI_TO_SEND_ACK( );
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:158:15: error: ‘USI_START_COND_INT’ undeclared (first use in this function)
( 0 << USI_START_COND_INT ) |
^
D:\Desktop\arduino sketche\arduino-1.6.5-Nano\libraries\TinyWireS\usiTwiSlave.c:515:9: note: in expansion of macro ‘SET_USI_TO_SEND_ACK’
SET_USI_TO_SEND_ACK( );
^
Fehler beim Kompilieren.

Da steht doch, was falsch läuft. Ein Haufen an defines fehlen. Vermutlich, weil in der Lib nichts für den 4313 hinterlegt ist. Schau nach, ob der 2313 dort gelistet ist. Dann kannst du den 4313 einfach überall mit einflegen.

"Da steht doch, was falsch läuft. "
........... ja aber um das zu verstehen, reicht mein wissensstand/erfahrungsstand nicht aus (;

aber danke !
hab ihn jetzt hinzugefügt, ich glaub jetzt läufts !!!!!!

Dann sollte man sich auch mal mit Mikrocontrollern abseits der typischen Arduino Ansicht auseinandersetzen. Das sind die ersten Basics, die man bei sowas in avr-gcc lernt. Leider wird das in der Arduino IDE nicht in den Vorderung gesetz, auch wenn ich es doch als durchaus sinnvoll empfinde.