Vielleicht probierst Du beim Master : VOR dem i2c_rep_start(~); eíne Kommandozeile i2c_stop(); ?
Vielleicht probierst Du beim Master : VOR dem i2c_rep_start(~); eíne Kommandozeile i2c_stop(); ?
Ciao sagt der JoeamBerg
Du hast recht, jetzt geht es, zumindestens einer der beiden Werte, ich erhalte einen hochzählenden Wert über die serielle Schnittstelle und ein "ä",
weist du, woran das liegen könnte? (also das ä)
Ja, ich hab mich da auch etwas gewundert. Und wenn ich dem read_Nak ein read_Ack schreibe und das Nak später, dann kommt immer ein "-" bei raus, also ascii 45.
Hmmm - da müsste ich grübeln (geht jetzt nicht).
ASCII ä = dez 228 = bin 1110 0100
ASCII - = dez 045 = bin 0010 1101
Passiert irgendeine Bitsetzerei im Slave? Ist der Schreib-/Lese-Pointer ok?
Ich habe für meine I²C-Kommunikation (ich meine die zwischen meinen Controllern *gg*) die Lib von Fleury genommen (sieh hier, klick). Das geht bei mir (jetzt) einwandfrei, ob das bei Dir dann helfen würde, weiß ich aber nicht.
Ciao sagt der JoeamBerg
Nein, ich fürchte, da bin ich mit etwas schusseligen Vertippfehlern drann schuld *hust*.
Erstmal hab ich, wie oben im Quelltext bei b1 zwar uart_puti verwendet, dann allerdings bei b2 uart_puts.
Zuletzt habe ich zu testzwecken mal 0x01 statt 0x00 am Anfang gesendet und bin dann in den bytes verrutscht.
Jetzt geht alles und der einzige echte fehler war dann wohl das mit dem i2c_stop, auf welches du mich aufmerksam gemacht hast.
Danke nochmal!
Lesezeichen