Für dieses Forum muß Javascript im Browser aktiviert werden!
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> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Thomas, > > > An verschiedenen Stellen schreibst du was über das Clockstretching. > > > > Hier hab ich einen Phillips-bautein den P87LPC764 > > > > Bitte unterscheide zwischen I²C-Bus-Bausteinen und µController, die als Slave betrieben werden, > da i.d.R. nur diese Clockstreching benötigen. > > > Wäre super schön wenn du die Zeit finden würdest, das ins OS einzubinden. > > Ich bin am Überlegen, die I²C-Routinen komplett zu überarbeiten. > Jedoch werde ich dann nur Clockstreching nur eingeschränkt implementieren. > D.h., es wird ein Timeout geben und nicht beliebig lange auf die "Freigabe" von SCL gewartet. > Das ist notwendig, da die I²C-Bus-Routinen nicht im Hintergrund ausgeführt werden > und somit das Programm verzögern würden, wenn z.B. SCL aus irgendeinem Grund auf low gezogen würde. > Evtl. werde ich auch sehen, daß ich eine Art Hintergrundausgabe beim I²C-Bus mache, > wie es beispielsweise bei den COM-Send-Routinen der Fall ist. > Aber dafür brauche ich etwas mehr Zeit am Stück. > > Ich habe testweise die original I²C-Read-Routine modifiziert, die ein Timeout > von 1024 Schleifendurchläufen bei jedem Clock-Zyklus hat. > Eine Timeout-Schleife sieht hier so aus: > <asm> > MOV R10, #0400h > _i2cR2: > CMPD1 R10, #0h > JMPR cc_EQ, _i2cR2a > JNB MRST,_i2cR2 > _i2cR2a: > </asm> > Zusätzlich ist habe ich die Clockleitung von Push-Pull in OD geändert wie es > beim I²C-Bus natürlich sein soll. > Ich verwende derzeit dieses einfache Clockstreching für experimentelle > ASM-Routinen zum eDIP240, da die CC2 in ASM einfach viel zu schnell ist, > damit der Controller des Displays bei der Datenübertragung hinterherkommt. > Die komplette Routine kann ich aber derzeit nicht veröffentlichen, da ich hier > etwas zu viel probiert habe und der Code entsprechend aussieht. ;-) > > Vielleicht werde ich übergangsweise auch ein ASM-Modul schreiben, welches > statt den OS die I²C-Bus-Routinen verwendet werden kann. > Das wäre auf jeden Fall kurzfristiger realisierbar und OS-unabhängig. > > MfG André H.