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 > Hallo, > > Die OneWire_Read-Funktion hat einen Fehler: bei als Eingang konfigurierten > Pins am gleichen Port wird der Pullup-Widerstand "zufällig" ein- und > ausgeschaltet. > > Die Ursache: zum Ermitteln der Werte für "Output High" und "Output Low" > wird das PIN-Register des Ports gelesen und später in das PORT-Register > geschrieben. > > Ist nun der Pegel an einem anderen Eingangspin High, so wird eine 1 in das > entsprechende PORT-Bit geschrieben und damit der Pullup aktiviert. > > Ist der Pegel an einem Eingangspin Low, so wird eine 0 in das entsprechnde > PORT-Bit geschrieben und damit der Pullup abgeschaltet. > > Oder am Problem am Beispiel des Beitrags <a href="http://ccpro.cc2net.de/forum/index.php?show=6464" target="_blank">DCF und OneWire_Read()</a> zu zeigen: > > > PortF.0 ist als Eingang für DCF77 mit Pullup konfiguriert. (Externes > Modul mit Openkollektor-Ausgang). > > Auf PortF.1 wird ein OneWire_Read() durchgeführt. > > Ist nun am Anfang von OneWire_Read() der Eingang PortF.0 auf Low (was > nach Tastverhältnis von DCF77 zu mehr als 80% der Zeit so ist), dann > schaltet der OneWire_Read() den Pullup von PortF.0 ab. > > Damit ist aber kein Empfang des DCF77-Signals mehr möglich. > > Die DCF_INIT() schaltet den Pullup wieder ein - der Empfang funktioniert wieder! > > Somit lässt sich das geschilderte Problem eindeutig erklären. > > Thomas