Hallo, ich beschäftige mich mit dem DS1631 und einem ATMega2561. Die Kommunikation funktioniert ohne Probleme. Dazu habe ich den Code von Peter Fleury genutzt. Nun möchte ich aber auch die Nachkommastellen aus dem DS1631 auslesen. Laut Datenblatt folgt dem auslesen des MS Data byte ein ACK vom Master und dann wird das LS Data byte bereitgestellt. Aber wie sende ein ACK vom Master? Das Datenblatt vom Mega hat mir bis jetzt auch nicht wirklich geholfen. Hie habe ich nur Beispiele zum empfangen eines ACK oder NACK gefunden. Hat jemand von euch einen oder Hinweis Tipp für mich? Gruß Carsten
Zuerst i2c_readAck für das erste Byte und dann i2c_readNak für das 2. Byte. Gruß Skriptkiddy
Hallo, jab danke, ich kann nun beide Registerwerte auslesen. Ich verstehe zwar noch nicht warum i2c_readNak mit dem ACK(Master) gleichzusetzten ist, aber das werde ich hoffentlich noch rausfinden. Gruß Carsten
Carsten schrieb: > Ich verstehe zwar > noch nicht warum i2c_readNak mit dem ACK(Master) gleichzusetzten ist, Ist es auch nicht. Das I2C-Protokoll besagt, dass wenn man mehrere Bytes hintereinander auslesen will, man jeweils vor dem nächsten Byte ein Master-ACK machen muss, um der I2C-Peropherie klar zu machen, dass man das noch ein Byte haben möchte. Dass passiert am Ende von i2c-readAck. Nach dem letzten Byte braucht man kein Ack mehr und sendet dementsprechend auch keins. Darum nutz man hier i2c_readNak, welches am Ende des Lesevorgangs kein Ack sendet. Gruß Skriptkiddy.
Hallo, vielen dank für die Zusatzinfo's. So langsam glaube ich zu verstehen was da so auf dem Bus passiert. Gruß Carsten
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.