ATmega8 Ausgabe TWI Stopbedingung abfragen? Assmbler!

OP #1785600
Lesenswert?
• ▲
▼
Hallo,


ich habe ein kleines Verständnis-Problem mit der Ausgabe der 
Stopbedingung
der TWI-Schnittstelle.
Ich betreibe den ATmega8 als Master.( 10Khz TWI )
Wie fragt ihr ab ob die Stopbedingung schon komplett ausgegeben ist?
Ich hatte die letzten Tage das Problem, dass wenn ich zu schnell wieder
auf den TWI zugegriffen habe, die Stopbedingung nicht fertig ausgegeben 
worden ist sondern mit der nächsten Startbedinung überschrieben worden 
ist.
--> Auf dem IIC-Bus wurde keine Stopbedinung gesendet.
Bis jetzt hatte ich anscheinend immer Glück, dass die Zeit zwischen 
senden einer Stop-Start-bedingung groß genug war, dass keine Fehler 
passiert sind.
( Liegt vielleicht auch daran, dass ich eigentlich fast immer mit 100Khz 
bzw wenn es geht mit 400Khz fahre)
Atmel macht die Abfrage in ihrem Bsp leider auch nicht. Datenblatt Seite 
177
Mein Program
Start  sende Adresse  sende Datum  sende Datum  Stop
Es kann passieren dass nach dieser Routine gleich wieder
auf den TWI gesendet wird und dann die Stopbedingung der ersten Routine 
nicht fertig gesendet wird.
Meine Abhilfe: eine kleine Schleife nach dem senden der Stopbedinung die 
erst im Program weitermacht wenn das TWSTO-Bit im TWCR-Register 0 ist.
Gibt es hier ne bessere Lösung?

mfG patt
Gast #1785620
Lesenswert?
• ▲
▼
Hi

Datenblatt:

TWCR

Bit 4 – TWSTO: TWI STOP Condition Bit
Writing the TWSTO bit to one in Master mode will generate a STOP 
condition on the Two-wire
Serial Bus. When the STOP condition is executed on the bus, the TWSTO 
bit is cleared automatically.

MfG Spess
OP #1785624
Lesenswert?
• ▲
▼
Das ging ja schnell mit der Antwort :-)
Das mit dem warten hab ich am Anfang auch gemacht. ( hat mir aber
überhaupt nicht gefallen :-( )
Wenn man jetzt mal irgendwas baut was am TWI sehr langsam sein muss,
muss man jedesmal aufpassen dass man lange genug wartet.
Deswegen hab ich ja auch die Abfrage eingebaut ob das StopBit wieder
0 ist und dann erst weiter im Program.

Danke!!!

mfG patt

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.