-
        

Ergebnis 1 bis 3 von 3

Thema: 16Bit Integer in 2 8Bit integer

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.02.2005
    Ort
    Hannover
    Beiträge
    174

    16Bit Integer in 2 8Bit integer

    Anzeige

    Hi,
    ich möchte ein 16bit integer über den I2C Bus sende.
    Dazu muss ich ihn ja in 2 Bytes aufteilen.
    So sieht mein Code dazu aus:
    Code:
    uint16_t daten = 65000;
    uint8_t byte_a = 0;
    uint8_t byte_b = 0;
    
    byte_a = daten; 
    byte_b = daten >> 8;
    In "byte_b" steht nur immer ein "0". Egal bei welchem wert von daten.
    Hab schon mehrere Beispiele von aufteilen in 2 Bytes ausprobiert. Gingen aber bisher alle nicht.
    Wo ist der Fehler?

    MfG Jörn

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    32
    Beiträge
    246
    Versuchs mal so:

    byte_a = (uint8_t)daten;
    byte_b = (uint8_t)( daten >> 8 );

    Es könnte nämlich sein, dass er optimieren will, und daten schon umwandelt, bevor er den rechts-shift macht...

    mfg
    zerush

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.02.2005
    Ort
    Hannover
    Beiträge
    174

    [gelöst] 16Bit Integer in 2 8Bit integer

    Kaum schickt man nach einer Stunde fehler suchen den Beitrag ab, findet man ihn... Dabei war ich mir doch ganz sicher, dass "daten" auch wirklich 16bit lang ist

    Problem gelöst

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •