Wie 10 bit datentyp erzeugen?

Gast #1105618
Hallo Leute!

Bin leider noch Anfänger. Hab daher mal ne kleine Frage.

Ist es möglich einen neuen Datentyp zu erzeugen der nur 10 Bit groß ist?

Wär echt klasse, wenn das möglich wäre, da ich zwei riesen Arrays habe 
in denen ich Messwerte vom ADC speichere.

Leider muss ich da ja auf Integer zurückgreifen. Daher hab ich ja bei 
jeden Messwert 6 Bits verloren, die ich nicht mehr benutzen kann, weil 
der ADC ja eine Auflösung von 10 bit hat.

Kann mir vielleicht jemmand sagen ob es möglich ist 10 bit Datentypen zu 
erzeugen, oder gibt es eine andere Möglichkeit, um nicht bei jeden Wert 
6 Bits zu verlieren?


Danke schonmal im Voraus!!!
So direkt ist das nicht möglich.
Die kleinste EInheit ist ein Byte, also 8 Bit

Aber: mit Bitgepfriemel kann man das schon erreichen. Als Anfänger würd 
ich dir das jedoch noch nicht empfehlen.
Kurz gesagt: Du musst dein Array als Abfolge von Bits ansehen. Wenn du 
dann den 13. Datenwert brauchst, beginnt der bei dir logischerweise ab 
Bitposition 130. Jetzt muss man sich ausrechnen, in welchem Byte des 
Arrays das liegt und dort wieder beginnend mit welchem Bit. Da dann die 
nächsten 10 Bits holen (aufpassen, das kann natürlich auch ins nächste 
Byte überlaufen) und diese 10 Bits in einem temporären int wieder 
richtig rechts ausrichten. Fertig

machbar, aber für einen Anfänger zu fehleranfällig.
Gast
Also 10 bit im Speicher dürfte nur auf einem FPGA sinnvoll realisierbar 
sein. Mit nem µC kannst Du
- die 2 LSB wegwerfen -> 8 bit
- einen 16 bit Wandler nehmen, dann wird nichts verschwendet ;)
- mühsam die Werte durch Bitschubsereien zusammenpfriemeln
- damit leben
- in 10.6 fixedpoint rechnen

Geht dir deswegen der Speicher aus?
Braucht es die 10 bit wirklich?
Gast
Erstmal danke für euere Antworten!

Dann werd ich das ganze lieber sein lassen, wenn das echt so kompliziert 
wird. Dachte nur, vielleicht gibts da ne ganz einfache Lösung.

Speicher reicht mir ja gerade so. Benutze zwei Arrays mit einer laenge 
von je 350 Messwerten. Und bissl was brauch ich noch für andere 
Variablen. Dann komm ich auf eine RAM-Auslastung von ca. 90% bei einem 
Atmega32.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.