www.mikrocontroller.net

Forum: Compiler & IDEs serielle schnittstelle 10 bit


Autor: maximilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: maximilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann hab ich doch unnötigen overhead, oder? (normalerweise wird das ja
byteweise geschickt. wenn ich davon nur 2 brauche, hab ich 6 stellen
frei.)

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ja und? Mußt du die Daten so schnell übertragen?

Matthias

Autor: maximilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jap. ich möchte möglichst viele messwerte übertragen.

Autor: maximilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach noch was: passt der code von oben überhaupt so? dadurch sollte das
ganze doch um den faktor 4 ungenauer werden, oder? (weil hinten 2
digits fehlen)

Autor: Werner Hoch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: maximilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
daran hab ich auch schon gedacht. allerdings ist es variabel, wie viele
ad-wandler ich abfragen muss.

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann nutz doch die restlichen Bits zur Informationsübertragung des
Kanals etc.

Gruß, Florian

Autor: maximilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.