Adressbeschreibung per Pointer



  • Hallo,

    ich habe ein kleines Pointer Problem, bzw. ein Problem mit meinem Unwissen.
    Folgendes sollte eigendlich passieren:
    WRITE16 erhält einen 16-Bit Wert und eine 32-Bit Adresse. Die Adresse wird als Wert des Pointers eingefügt, sprich er zeigt auf diese. Der 16-Bit Wert wird an die gewünschte stelle geschrieben.

    uint16_t *pointer;	/*	4 byte pointer	*/
    
    void WRITE16 (uint16_t value, uint32_t address)
    {
        pointer = address;
        *pointer= value;
    }
    

    Jedoch erhalte ich beim compilieren folgende Warnung:

    "src\functions.c", line 67: warning #513-D: a value of type "uint32_t" cannot
    be assigned to an entity of type "uint16_t *"
    pointer = address;
    ^

    Debuggen kann ich gerade noch nicht, da die notwendige Hardware auf der geschrieben wird noch nicht angeschlossen ist.

    Über mögliche Tips zur Fehlersuche oder jegliche weitere Hilfe freue ich mich sehr,

    Gruß Jan L.

    Betriebssystem: XP
    Arbeite mit MULTI2000, ANSI C;



  • casten:

    pointer = (uint16_t*)address;
    


  • Wow, danke. Ich stöbere gerade im http://www.galileocomputing.de/openbook/c_von_a_bis_z/ herum, weil ich natürlich auch gerne wissen will was es mit dem casten auf sich hat.
    Danke auf jeden Fall, funktioniert und hat aufgehört zu meckern 🙂 Wenn du einen kleinen link zum thema casten bei der hand hast, wärs super wenn du den mir hinterherschmeissen kannst, dann kann ich mirs durchlesen.

    lg Jan L.



  • hm jo kann zugemacht und verräumt werden

    merci


Anmelden zum Antworten