serielle schnittstelle 10 bit

Gast #76064
Lesenswert?

hallo zusammen!

ich habe ein kleineres problem mit einem 4433 und dem gcc. ich habe
vor, die 10-bit werte eines internen analog-digital-wandlers über die
serielle schnittstelle zu übertragen. derzeit sende ich im 8-bit modus,
und schneide den rest des messwerts einfach ab, um nicht 2 packete
senden zu müssen! (UART_SendByte((ADCW>>2)); -jaja. ich weiß. sehr ugly
g)

hat jemand ne idee, wie ich die schnittstelle dazu bewegen kann,
10-bit-werte an einem stück zu übertragen?

danke schon mal im vorraus!
Gast #76065
Lesenswert?

Hi

garnicht. 9 Bit wären möglich aber nur bei µC zu µC Kommunikation. PC
seitig ist das 9 Bit immer das Parity Bit. Mag sein das man trotz einem
Parity Fehler an die Daten kommt und so auch 9 Bit übertragen kann. Ist
aber IMHO den Aufwand nicht wert. Warum nicht einfach zwei Byte
senden?

Matthias
Gast #76070
Lesenswert?

Du kannst 4 Werte in 5 Byte aufteilen.
4 mal die obersten 8 bit und im 5. Byte die niedrigen bits.

Du mußt auf der PC-Seite halt darauf achten, daß du den Anfang wieder
findest. (event. 6. Byte als Markierung)

mfg
werner
Gast #76073
Lesenswert?

hallo zusammen

erst mal danke für die vielen antworten! ich hab's jetzt so gemacht,
dass ich vor der datenübertragung übertrage, was ich will, dann werden
maximal 4 channels gesendet, und dann ein byte mit den 2bit
reststücken...

jetzt taucht hier aber ein kleines anderes problem auf:

    UART_SendByte((swap>>2));

durch den code schneidet er zwar schön ab, füllt dann von hinten her
alles mit einsern bis zur ersten eins auf. ich bekomme dann so sprünge
wie:
    193 11000001
    195 11000011
die 194 11000010 unterschlägt er hier einfach! (das macht er
systematisch so. die nächste zahl ist dann (11000111) = 199)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren