Hi Tschoeatsch,
du meinst wohl das folgende ...
Durch "RESET PCF8574_Sendedaten.5" setze ich nur das Bit 5 in der Bytevariable "Sendedaten" zurück (also auf 0)
Es sind also zwei Bitmanipulationen die in dem Byte die Bits 3+5 auf 0 setzen. Alle anderen Bits im Byte bleiben unberührt.
Aber stimmt ... Laut dem Kommentar sollte das Bit 3 auf 1 gesetzt werden.
Es sollte da also SET und nicht RESET heißen Muß ich mal ändern ...
Gruß
Dino
Jetzt hab' ich mal eine Frage, in diesem Beitrag http://www.makerconnect.de/index.php?threads/proplem-mit-pcf8574-port-in-bascom-ansteuern.3275/ ist im letzten code-Block, letzter Beitrag, 2x ein 'reset...' von verschiedenen Datenbits und 1x soll der Ausgang dabei 1 werden im anderen Fall 0. Ist das jetzt auch ein Schreibfehler, oder hab' ich mal wieder nix gerallert?
du meinst wohl das folgende ...
Diese beiden RESET-Zeilen die ich jetzt mit dem <=== markiert habe.Als Beispiel noch ein kleiner Programmschnipsel ...
Code:DIM PCF8574_Lesedaten AS BYTE DIM PCF8574_Sendedaten AS BYTE PCF8574_Sendedaten = &B1101_0111 ' Alle Pins auf High die Eingaenge sein sollen ' P0-P2 ist Eingang (Taster) ' P3 ist Ausgang (Relais ueber Transistor) ' P4 ist Eingang (Taster) ' P5 ist Ausgang (LED nach Vcc) ' P6-P7 ist Eingang (Taster) RESET PCF8574_Sendedaten.5 ' Pin5 des PCF8574 auf 0 (GND) setzen (zB LED5 anschalten) <===== RESET PCF8574_Sendedaten.3 ' Pin3 des PCF8574 auf 1 (Vcc) setzen (zB Relais1 anschalten) <===== I2cstart ' Startsignal auf dem I2C-Bus senden. Anfang vom Transfer I2cwbyte PCF8574_Schreibadresse ' Mit der Schreibadresse dem IC sagen das ' das nächste Byte ausgegeben werden soll I2cwbyte PCF8574_Sendedaten ' Nun das Byte senden was ausgegeben werden soll I2cstop ' Stopsignal auf dem I2C-Bus senden. Transfer ist zu Ende I2cstart ' Startsignal auf dem I2C-Bus senden. Anfang vom Transfer I2cwbyte PCF8574_Leseadresse ' Mit der Leseadresse dem IC sagen das ' das er nun mit Daten senden dran ist I2crbyte PCF8574_Lesedaten , Nack ' Ein Byte aus dem Eingaberegister (von den IO-Pins) lesen I2cstop ' Stopsignal auf dem I2C-Bus senden. Transfer ist zu Ende ' In der Variable PCF8574_Lesedaten findet man nun in den entsprechenden ' Bits die Zustände der IO-Pins vom PCF8574
Durch "RESET PCF8574_Sendedaten.5" setze ich nur das Bit 5 in der Bytevariable "Sendedaten" zurück (also auf 0)
Es sind also zwei Bitmanipulationen die in dem Byte die Bits 3+5 auf 0 setzen. Alle anderen Bits im Byte bleiben unberührt.
Aber stimmt ... Laut dem Kommentar sollte das Bit 3 auf 1 gesetzt werden.
Es sollte da also SET und nicht RESET heißen Muß ich mal ändern ...
Gruß
Dino