Forum: Mikrocontroller und Digitale Elektronik Problem mit 16 Bit daten


von Sebastian R. (Firma: Hager Electro GmbH & Co. KG) (seprim)


Lesenswert?

Hallo Leute
Ich sitze an meiner Projektarbeit und bin momentan an einem Problem 
angekommen.
Ich nutze einen Invensense MPU 9250 9AoF Sensor und eine Silabs 
C8051F560 µC
Der Sensor gibt mit 2*8Bit Daten für Gyroskop(x,y,z), Accel(x,y,z) und 
Magnetoskop(x,y,z). Aus diesen Daten soll ich nun eine Richtung 
bestimmen.
Das Problem ist wie kann ich diese 16-Bit daten verarbeiten?
Gibt es da einen Datentyp?
LG und vielen Dank im Voraus
Seprim

von Nop (Gast)


Lesenswert?

Wie wäre es mit Stadard uint16_t oder int16_t?

von Rolf M. (rmagnus)


Lesenswert?

Ob es einen 16-Bit-Integer gibt und wie der heißt, hängt stark von der 
verwendeten Programmiersprache ab.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Rolf Magnus schrieb:
> Ob es einen 16-Bit-Integer gibt und wie der heißt, hängt stark von der
> verwendeten Programmiersprache ab.

 Ob es einen 64-bit Integer gibt vielleicht, aber Programmiersprache
 ohne 16-bit Integer ?

von Georg (Gast)


Lesenswert?

Marc Vesely schrieb:
> aber Programmiersprache
>  ohne 16-bit Integer ?

Schon aber natürlich heisst der in C anders als in Basic als in 
Pascal...

Georg

von Sebastian R. (Firma: Hager Electro GmbH & Co. KG) (seprim)


Lesenswert?

Programmiersprache ist C/C++
Wenn ich uint16_t nutze, was muss ich denn da noch für ne Lib einbinden?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sebastian R. schrieb:
> Wenn ich uint16_t nutze, was muss ich denn da noch für ne Lib einbinden?

Keine. Du brauchst allenfalls die Headerdatei, in der uint16_t definiert 
ist.

Kennst Du das Konzept der Volltextsuche? Such einfach in den mit 
Deinem Compilern mitgelieferten Headerdateien nach "uint16_t" und sieh 
Dir die genauer an, in der das im Zusammenhang mit entweder #define oder 
typedef auftaucht.

von S. R. (svenska)


Lesenswert?

"C/C++" ist keine Programmiersprache. Aber in beiden hat "int" 
mindestens 16 Bit.

von Gustav (Gast)


Lesenswert?

S. R. schrieb:
> Aber in beiden hat "int" mindestens 16 Bit.

Antworten, nach denen niemand gefragt hat.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Gustav schrieb:
> S. R. schrieb:
>> Aber in beiden hat "int" mindestens 16 Bit.
>
> Antworten, nach denen niemand gefragt hat

 Kommentare, die völlig nutzlos sind. ( meinen rechne ich dazu ).

von Rolf M. (rmagnus)


Lesenswert?

Marc Vesely schrieb:
> Rolf Magnus schrieb:
>> Ob es einen 16-Bit-Integer gibt und wie der heißt, hängt stark von der
>> verwendeten Programmiersprache ab.
>
>  Ob es einen 64-bit Integer gibt vielleicht, aber Programmiersprache
>  ohne 16-bit Integer ?

Nun, ich kenne mich mit den Assembler-Dialekten des 8051 nicht aus. 
Könnte ja durchaus sein, daß es dort keinen gibt.

von Gustav (Gast)


Lesenswert?

Marc Vesely schrieb:
> Kommentare, die völlig nutzlos sind.

Keineswegs. Wenn man Drive-By-Poster nicht frühzeitig erzieht, vergiften 
sie ein Forum.

> meinen rechne ich dazu

Ich ebenso.

von Jim M. (turboj)


Lesenswert?

S. R. schrieb:
> Aber in beiden hat "int" mindestens 16 Bit.

Das kann man bei 8051 via Compiler Option auch auf 8 Bit begrenzen. 
Leider hat der OP den Compiler nicht angegeben.

von Peter II (Gast)


Lesenswert?

Warum müssen es denn 16bit sein? Einfach Int verwenden und gut ist. Wenn 
es dann 32bit sind sollte bei einer 32bit MCU auch egal sein.

Sollte eventuell sogar schneller sein, als die 16bit Version

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Jim Meba schrieb:
> Das kann man bei 8051 via Compiler Option auch auf 8 Bit begrenzen.

 Warum und wozu ?
 Kann man dann auch Byte auf Nibble begrenzen ?

von Sebastian R. (Firma: Hager Electro GmbH & Co. KG) (seprim)


Lesenswert?

Die MCU ist ein 8bit Controller und der Compiler ist der SDCC 3

von Phantomix X. (phantomix)


Lesenswert?

erstell dir eine datei und nenn sie
types_8051.h

dort rein schreibst du:
1
#ifndef TYPES_8051_H
2
#define TYPES_8051_H
3
typedef signed char int8_t;
4
typedef int int16_t;
5
typedef long int int32_t;
6
typedef unsigned char uint8_t;
7
typedef unsigned int uint16_t;
8
typedef long unsigned int uint32_t;
9
#endif //TYPES_8051_H

von Alexander F. (alexf91)


Lesenswert?

Phantomix Ximotnahp schrieb:
> erstell dir eine datei und nenn sie
> types_8051.h

Vorher aber bitte mit
1
#include <stdint.h>
oder
1
#include <inttypes.h>

versuchen.

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.