-
        

Ergebnis 1 bis 4 von 4

Thema: Register ansprechen ->

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    13.02.2009
    Beiträge
    6

    Register ansprechen ->

    Anzeige

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

    ich frage mich gerade, was eigetnlich genau passiert, wenn ich z.B. einen PORT auslese oder beschreibe.

    Angenommen ich beschreibe PORTB würde ich das wie folgt machen:
    Code:
    PINB = 0x34; // oder ähnlich
    Meine Frage ist eigentlich, was steckt hinter PINB

    In iom32.h ist PINB wie folgt definiert:

    Code:
    #define PINB    _SFR_IO8(0x16)
    _SFR_IO8 ist in sfr_defs.h zu finden:

    Code:
    #define _SFR_IO8(io_addr) ((io_addr) + __SFR_OFFSET)
    und ab diesem Punkt kann ich es nicht mehr nachvollziehen. Angenommen ich wüsste die Adresse von PORTB, könnte ich diesen dann direkt auslesen? Was genau macht der Compiler an dieser Stelle?

    Danke!

    Peter

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Letztlich macht er genau das, was du oben angeführt hast.
    Es ist das Bereich, in dem die "special-function-register" (SFR) sind, als basis definiert
    (irgendwo steht noch "#define __SFR_OFFSET nnn " )
    Das PortB ist offenbar in diesem Bereich an der Stelle 0x16
    Also
    1 PINB = 0x34
    2 _SFR_IO8(0x16) = 0x34
    3 ((0x16) + nnn) = 0x34
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    13.02.2009
    Beiträge
    6
    Danke Dir,

    aber was genau macht der Compiler damit?

    Da steht ja jetzt eigetnlich nur eine Zahl, also die 0x16 + offset der wir irgendeine andere Zahl zuweisen. Wie wird wird das jetzt umgesetzt?

    Grüße,

    Peter

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Die Zahl versteht er als Adresse, d.h. er schreibt den wert 0x34 dorthin.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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