Forum: Mikrocontroller und Digitale Elektronik Stoppen einer seriellen Datenübertragung


von bob (Gast)


Lesenswert?

Hallo Leute,

ich versuche zur Zeit von meinem AVR 21 Bits auf einen anderen µC zu 
senden. Ich kann zwar in beliebiger Anzahl von Bytes (z.B: 8 Bit, 16 
Bit, 32 Bit usw...) seriell hintereinander senden aber da jetzt nur 21 
Bits gesendet werden müssen, bin ich ratlos wie ich ein Befehl eingeben 
kann damit er nach Senden des 21. Bits aufhört.

Ich wäre dankbar wenn jemand mir dabei helfen könnte oder ein Link geben 
könnte wo ich das Thema lesen kann.

Mit freundlichen Grüßen

Bob

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

du kööntest vorne einfach 0en dranhängen.

von Johannes M. (johnny-m)


Lesenswert?

Was für eine serielle Datenübertragung ist das denn? Da gibts 
schließlich einige Möglichkeiten.

von Seff (Gast)


Lesenswert?

Das UART sendet immer ein byte auf's mal. Was ist nicht gut dabei ?

von Johannes M. (johnny-m)


Lesenswert?

Seff wrote:
> Das UART sendet immer ein byte auf's mal. Was ist nicht gut dabei ?
Tut es doch gar nicht. Gerade beim USART kann man die Frame-Länge 
verändern, wenn die Gegenstelle mit solchen Frames klarkommt. Deshalb 
auch meine Frage, um was für ein Interface es sich denn handelt. SPI, 
I²C usw. haben dagegen tatsächlich fest vorgegebene Frame-Längen.

von Seff (Gast)


Lesenswert?

Be einen PC duerfte das schwierig werden. Ja, es ist nur ein Register. 
Ich musste mal in einem Projekt die Baudrate von einer Message zur 
Naechsten umschalten, Ein sogenannte Baudrate Change Command an ein 
externes Geraet.
Die Antwort kann dan schon in der neuen Baudrate zurueck. Wie lange 
dauerte die Ausfuehrung dieses Windows API Befehles ? Bis diese 
Anweisung durch die APIs und Task Stacks durchgeblubbert war, waren 1.7 
sekunden vorbei. Es ging dann natuerlich nicht schnell genug.
Ich kann nur von solchen Spielereien abraten wie die Anzahl Bit 
zwischendurch veraendern zu wollen.

von bob (Gast)


Lesenswert?

Es ist eine SPI Datenübertragung!

von Seff (Gast)


Lesenswert?

SPI ist von der Hardware her 8 bit pro byte. Das wuerde dann nach 
Soft-SPI rufen, also den Portpin per Software hoch und runter machen.

von Johannes M. (johnny-m)


Lesenswert?

Ich kann mir nur wenige Anwendungen vorstellen, bei denen es auf jeden 
einzelnen Takt bei der Übertragung ankommt und das Übertragen von drei 
zusätzlichen Bits (also 24 Bit statt 21) ein großes Problem darstellt.

von Zeusi (Gast)


Lesenswert?

USART, kann auch 7bit happen senden, bei drei sende routinen währen das 
schon 21 bits,.. dennoch währ die frage inwieweit die start und stopbits 
stören bzw. hilfreich sein könnten,..

zu SPI, wenn per soft SPI auf hardware SPI gesendet wird gäbe es das 
problem das im reciever das RECEPTION COMPLETE interruptflag nicht 
gesetzt wird, daja 3 weitere bit am schluss fehlen, das könnte aber mit 
dem Cable select gelöst werden indem man es wieder auf high setzt, 
dadurch der reciever weiß "OK, also doch allet da,.."


naja,. bis denne
grüüüße

von bob (Gast)


Lesenswert?

vielen dank an alle! :)

ich habe mich entschieden die 21 Bits mit Hilfe des Timers zu senden!

adeos.....!

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.