-         

Ergebnis 1 bis 3 von 3

Thema: DWord zusammensetzen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2005
    Ort
    Groitzsch
    Alter
    34
    Beiträge
    24

    DWord zusammensetzen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,

    ich möchte die Rückantwort des RN-MotorControl für den gefahren Weg haben. Als Antwort bekomme ich ja 4 Bytes. Funktioniert es mit meiner selbstgeschieben Funktion. Bei 2 Bytes funktoniert es einwandfrei.
    Aber hier mault der Compiler:

    warning: left shift count >= width of type

    Code:
    //w LOWWord_Low //x LOWWord_High //y HighWord_Low //z HighWord_High
    uint32_t TODWORD(uint8_t w,uint8_t x,uint8_t y,uint8_t z)  {
    	return ( ((w) << 24) | ((x) << 16) |  ((y) << 8) | z);
    }
    Gruß

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    10.08.2004
    Ort
    Großbardorf
    Alter
    30
    Beiträge
    674
    Das Problem ist, dass deine Variablen 8Bit groß sind, du schiebst die Bits aber weiter als diese 8 Bits nach links. Du brauchst also Variablen, in die mehr Bits reinpassen. Du deklarierst die Variablen gleich größer oder du castest sie beim shiften.
    also so: (( (uint32_t) w) << 24)
    Dann dürfte es eigentlich funktionieren.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2005
    Ort
    Groitzsch
    Alter
    34
    Beiträge
    24
    Danke,

    mit dem vorher casten klappt.

Berechtigungen

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