Joe F. schrieb:
> klugscheisserei bezügl. begriffen:
> deine maske ist 0x80, und das was bei dir maske heisst ist das
> datenbyte.
Ja ist richtig :D - ich hab da ein wenig verquert gedacht. Weil ich das
als Maske über die SCL sehe - quasi nicht aus programmiertechnischer
Sicht. Aber richtig - die eigentliche Maske ist die 0x80 und das zu
sendende Byte heißt Maske, werde ich - damit es später nicht zu
Missverständnissen führt, aber umbenennen.
Joe F. schrieb:
> bei i2c darfst du übrigens scl und sda nie aktiv high treiben, sondern
> musst für high die leitung tri-staten und die pullups ihren job machen
> lassen.
Jain - ich betreibe die i2c Slaves ohne Pull-up und nutze die Pull-Up im
AVR. Ich weiß, ich weiß - ich hole mir auch schonmal mein Popcorn raus
und freue mich auf die nun entstehende Diskussion! :D
Joe F. schrieb:
> start stop condition und clock stretching werden dann deine nächsten
> themen...
Die Start, Stop Condition ist ja nun so wild. Clock Stretching werde ich
bei diesem Projekt außer acht lassen - da der von mir eingesetzte i2c
Slave dies nicht unterstüzt bzw. nutzt / betreibt. Es handelt sich im
übrigen um ein SDTS25 - Temperatursensor.
Marcel P. schrieb:
1 | > if(Maske & 0x80) //SDA: Prüfe ob Maskenbit 1
|
2 | > SDA_PORT |= (1<<SDA_PIN); //SDA: Setze Pin auf 1 wenn Maskenbit 1
|
3 | > else
|
4 | > SDA_PORT &= ~(1<<SDA_PIN); //SDA: Setze Pin auf 0 wenn Maskenbit
|
5 | > 0
|
Ja okay, also immer entscheiden lassen ob high oder low... das spart auf
jeden Fall mal eine Anweisung, das ist richtig - zu lesen und zu
verstehen natürlich auch einfacher. Werde das wohl so machen. Danke.