Das mit TWI-Slave ist mir klar. Darum werde ich nicht direkt herumkommen. Mit Registern direkt schreiben habe ich auch kein Problem. Das geht mit Bascom ohne Probleme. Im Forum habe ich jetzt nochmal gesucht und auch mal alle deine Themen dazu gelesen. Das was eigentlich mein Problem ist ist aber da nirgends geschrieben worden. Im Vektor-Bereich des AVR gibt es ja einen Vektor als Interruptvektor der mir bei TWI auslöst. Diesen zu verwenden schweigt sich allerdings Bascom auch in der Hilfe etwas aus.

Zum I2C-Protokoll kann ich nur einfach sagen das der I2CRecive nicht geeignet sein wird um ein Slave zu realisieren. Das sit meiner Ansicht nach ein voller MAster-I2C-Befehl. Also wird zuerst die Adresse gesendet auf der dan ein Slave antworten soll. D.h. wenn ich das so machen würde hätte ich zum einen zwei Master am Bus was sicher nicht gut ist und zum andern habe ich das Problem das mir der Slave im Moment in dem er angesprochen wird plötzlich seine Adresse mitteilen will. Also ist es ein Master-Befehl wie er z.B. zur Abfrage eines Kompasswerts von einem CMPS03 verwendet werden kann. Bin nun irgendwie total verwirrt und seh gar keine Lösungsmöglichkeit mehr für einen I2C-Slave.

Grüße Wolfgang

Nachtrag:

Ich habe mir nun einmal das Datenblatt von ATMEL geladen "ATMEGA8 und ATMEGA8L" und ab Seite 159 bis Seite 187 ist die genaue Beschreibung der internen Register. Dort wird auf Seite 159 ausdrücklich eine Slace-Unterstützung mit einem hardwareseitignen Adressvergleich angegeben. Die CPU-Clock muß nur ca. 16 mal höher sein wie die Baud/Clockrate auf dem I2C-Bus. Also bei 100kHz wären dies minimal 1,6MHz was selbst mit dem Standard 3,68MHz-Quarz zu schaffen ist.