Forum: Mikrocontroller und Digitale Elektronik TWI Library - u.A. Probleme mit STOP


von Peter S. (durze)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
Vorneweg: Ich habe das Forum durchsucht aber bin leider nicht fündig 
geworden.

Ich habe die letzten Tage damit zugebracht mich in TWI ein zu lesen und 
habe eine eigene TWI-Library in Assembler geschrieben.
Ich habe das gemacht weil ich dieses Thema gerne umfänglich verstehen 
und nicht einfach irgendeine Library nutzen möchte.

Ich habe allerdings ein paar Fragen:
1. Ist es möglich, dass UART und TWI sich bei der Kommunikation in die 
Quere kommen?
Ich hatte vor, Werte von einem Gyro per TWI aus zu lesen und mittels 
UART an den PC zu senden, jedoch sendet mein UART mir nur Müll, wobei 
ich den Code 1:1 aus dem AVR-Tutorial dieser Seite übernommen hat, und 
er für sich alleine auch funktioniert ("test" senden klappt wunderbar, 
sobald ich den Code jedoch ins Mainprogramm zum TWI stecke, empfange ich 
immer nur 0x1C)

2. Ist dieser modulare Aufbau, so wie ich es realisiert habe, 
sinnvoll/richtig?
Es war mir wichtig, den Code so zu gliedern, dass ich damit umfassend 
arbeiten kann (daher zb. ACK und NACK als einzelne Unterprogramme)

3. In meinem Mainprogramm funktioniert die Übertragung momentan so, dass 
ich in der Initialisierung den TWI-START schicke und dann im loop
REPEAT-START schicke,
ein Register anfordere (Write),
dann REPEAT-START schicke,
dann das Register auslese (READ),
das dann per UART ausgebe und dann
wieder zu loop springe.
Es klappt jedoch nicht(!) wenn ich am Ende des Loops einen STOP-Befehl 
sende und zu Beginn wieder ein START.
(Ich gehe also davon aus, dass irgendwas mit dem STOP-Befehl nicht 
stimmt)
Kann mir da Jemand weiterhelfen?

Im Anhang die Library, gerne zur freien Verfügung, falls denn alles 
stimmt.

Danke im Vorraus

Peter


*Edit:*
Ich muss mich selber korrigieren.
Der UART funktioniert wahrscheinlich, die 0x1C ist die Adresse des 
Groskopes. Und anstatt den Wert des Registers aus zu lesen, hat er eben 
diesen Wert ständig gesendet.
Dafür stehe ich nun vor dem Problem, dass das Auslesen der TWI-Daten 
wohl doch nicht funktioniert.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Peter S. schrieb:
> Im Anhang die Library
Dort reicht es dann auch. Du brauchst sie nicht noch zusätzlich in den 
Post kopieren...

> 1. Ist es möglich, dass UART und TWI sich bei der Kommunikation in die
> Quere kommen?
Ja, kann sein.

> 3. In meinem Mainprogramm funktioniert die Übertragung momentan so
Lass doch einfach mal sehen, der Fehler liegt mit hoher 
Wahrscheinlichkeit ausserhalb des geposteten Programms...

von Peter S. (durze)


Angehängte Dateien:

Lesenswert?

Ok hier ist das Hauptprogramm.
Die Library hab ich nochmal dran gehängt, weil Ich eben noch was ergänzt 
habe.

von Peter S. (durze)


Lesenswert?

Ok Das Problem hat sich erledigt, kann geschlossen werden.
Danke trotzdem an jeden der es sich angeschaut hat.
Hier noch die fertige Library:
http://pastebin.com/Ne64UbQB

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
Noch kein Account? Hier anmelden.