Gast
#3694632
Hallo zusammen, Ich habe ein für mich seltsames Problem mit meinem TWI. Wenn mein Atmega8 als Master von einem Sensor Daten liest, dann muss er schon nach dem zweitletztem Byte, welches er empfangen will, dem Sensor ein NACK (not acknowledge) senden. Wenn er das nicht tut, dann bleibt der Controller in der while Schleife einer darauffolgendne TWI_Start Funktion hängen, sprich das TWINT Flag wird nicht mehr gesetzt. Die Stelle im Code sieht so aus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Anscheinden wird in diesem Fall das TWINT Flag nicht mehr gesetzt, obwohl eine Start Kondition vom Controller gesendet wurde. Ich verstehe dieses Verhalten nicht, sollte es nicht so sein, dass der Master als Receiver nach dem letzten Byte, welches er empfangen will, ein NACK senden sollte und somit der Sensor weiss, dass er nichts mehr senden soll? Ich habe irgendwo in einem Forum mal aufgenommen, dass das passieren kann, wenn gewisse Register des Sensors doppelt gebuffert sind. Im Datenblatt finde ich allerdings nichts dazu. Hat jemand eine Idee? Vielen Dank, Roman