Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 5 von 5

Thema: Pointer

  1. #1
    Mathias W. Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute, mir ist da was aufgefallen, kanns mir aber nicht genau erklären!

    Wenn ich z.B. eine Integerzahl (z.B. 26) ins Pointerformat umwandle, was passiert mit dieser Zahl?

    Kann ich mit Pointern noch rechnen oder geht das nur mit den z.B. Integernvariablen?

    Ich habe nämlich versucht und bin damit gescheitert, mit einer Pointerzahl
    bzw Intergervariable die ins Pointerformat umgewandelt wurde, zu rechnen und da kammen riesige Summen bei raus!!!

    Hat das irgendwas mit dem Befehl "SLD3" zutun?

    Gruß Mathias
    Zitieren Zitieren Gelöst: Pointer  

  2. "Hallo Andre, ich habe deine Lösung genommen die war am einfachsten nachzuvollziehen für mich!
    Jetzt wollt ich das ganze halt noch fürn Schieberegister mit dem ich ganze Wörter oder sogar Doppelwörter schieben kann, umschreiben und dabei ist mir dann aufgefallen das die Pointer bzw "Meine Zahlen" mit den ich gerechnet hatte ziemlich groß wurden und mir dabei wieder die CPU abgekackt ist.
    Dann bin ich der Sache auf den Grung gegangen und habe das ganze dann dahin gehend abgeändert das ich mit meinen Intergern rechne und diese dann wieder ins Pointerformat umwandele.
    Der ganze Fehler ist aufgetreten, da ich ja nun für Wörter 2 Bytes brauche und das sich dadurch ja auch die ganze adressierung ändert!
    Ich habe es aber geschafft und es läuft!

    Mir war das Ganze halt irgenwie komisch vorgekommen, und da ich keine Erklärung dafür hatte, dachte ich mir fragste mal nach!!!

    Gruß Mathias und danke für Eure erläuternden Worte."


  3. #2
    Registriert seit
    20.06.2003
    Beiträge
    41
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Soweit ich weiß sind Pinter nur Zeiger die auf Adressbereiche in der Steuerung zeigen.

  4. #3
    Edward Gast

    Standard

    Hallo Mathias,

    der einfachste Fall eines Pointers ist 32Bit lang, ein Bereichszeiger der Form p#y.x, wobei y für die Byte-Adresse und x für die Bit-Adresse steht.
    Dieser wird im Speicher in einem Doppelwort abgelegt, allerdings wird die Bitadresse (möglich 0..7) in den untersten 3 Bits abgelegt, deshalb wird, wenn man die Byteadresse manipulieren will auch um drei nach links geschoben.
    Schieben um drei nach links entspricht einer Multiplikation mit 8 => aus Deiner 26 müsste 208 werden, aber wie Du die 26 so einfach in einen Pointer umwandelst leuchtet mir nicht ein. Denn pointer zeigen, wie oliver beschrieben hat, nur auf die entsprechenden Speicherbereiche in der Steuerung.

    Bitte korrigieren, ist schon etwas her.

    mfg

    Edward

  5. #4
    Registriert seit
    30.08.2003
    Beiträge
    2.197
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    ja das hängt mit SLD3 zusammen. Aber überhaupt ist es nicht empfehlenswert mit Pointern zu rechen, da diese auch die Bereichskennung enthalten können. Lieber vorher rechen und ins Pointerformat schieben. Übrigens welche Lösung nimmste jetzt beim Schieberegister?

    MfG
    André Räppel
    Zitieren Zitieren Pointer  

  6. #5
    Mathias W. Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Andre, ich habe deine Lösung genommen die war am einfachsten nachzuvollziehen für mich!
    Jetzt wollt ich das ganze halt noch fürn Schieberegister mit dem ich ganze Wörter oder sogar Doppelwörter schieben kann, umschreiben und dabei ist mir dann aufgefallen das die Pointer bzw "Meine Zahlen" mit den ich gerechnet hatte ziemlich groß wurden und mir dabei wieder die CPU abgekackt ist.
    Dann bin ich der Sache auf den Grung gegangen und habe das ganze dann dahin gehend abgeändert das ich mit meinen Intergern rechne und diese dann wieder ins Pointerformat umwandele.
    Der ganze Fehler ist aufgetreten, da ich ja nun für Wörter 2 Bytes brauche und das sich dadurch ja auch die ganze adressierung ändert!
    Ich habe es aber geschafft und es läuft!

    Mir war das Ganze halt irgenwie komisch vorgekommen, und da ich keine Erklärung dafür hatte, dachte ich mir fragste mal nach!!!

    Gruß Mathias und danke für Eure erläuternden Worte.
    Zitieren Zitieren Die einfachste...  

Ähnliche Themen

  1. Pointer und Co
    Von mkd im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 31.07.2008, 14:30
  2. SCL: Pointer
    Von dinner4one im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 06.07.2008, 18:07
  3. Pointer in SCL ?
    Von AndreK im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.04.2008, 21:24
  4. DB und Pointer
    Von PhilippL im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 12.09.2007, 07:02
  5. VKE und Pointer im FC...
    Von halorenzen im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 23.07.2004, 13:16

Lesezeichen

Berechtigungen

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