Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Nachdem mir dieses Forum schon bei vielen Fragen weitergeholfen hat, möchte ich > keine Frage stellen sondern einen Programmschnipsel beitragen den mit und > vielleicht auch anderen bei Problemen mit der I2C-Schnittstelle weiterhilft. > > Die I2C-Schnittstelle der ProMega bleibt bei Störungen auf dem Bus oder falschen > Pullup-Wiederständen gelegentlich "hängen" wobei anschließend keine vernünftige > Kommunikation mehr über die Schnittstelle möglich ist. Bisher konnte ich das > Problem nur durch einen Reset des Moduls lösen. Nun schafft bei mir folgende > kleine Basic Funktion Abhilfe: > <basic> > Sub I2C_Reset() > If DirAcc_Read(0x56)<>4 Then > DirAcc_Write(0x56,0) > n++ > End If > End Sub > </basic> > Dabei wird das TWCR-Register des Mega32 Moduls abgefragt und bei einer Störung > zurückgesetzt. Bei der Mega128 ist dieses Register bestimmt auf einer anderen > Adresse als 0x56 aber das kann man in der Dokumentation des jeweiligen Moduls > nachlesen. n++ ist eine Zähler mit dem man die Häufigkeit der Störung untersuchen > kann und so Aukunft über die "Qualität" seines I2C-Buses erhält.