-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Das Gegenteil von makeint

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    470

    Das Gegenteil von makeint

    Anzeige

    Hallo,
    hab eine Frage also ich möcht ein Word in ein I²C EEprom schreiben, muss ich dazu das word in 2 Bytes zerlegen, wenn ja wie , giebt es einen Befehl der ein Word in 2 Bytes zerlegt ( also das gegenstück zu makeint ). Oder kann ich einfach das Word über den I²C jagen, zerlegt das EEprom das Word automatisch in 2 Bytes ( wird das dann so gespeichert: 1.Byte eine Addresse , 2. Byte noch einen Addresse oder 1.Byte und 2.Byte in eine Addresse ).

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Im internen EEPROM kannst du das Word z.B. in 10 schreiben und dann belegt es 10 und 11.
    Wenn du ein Byte von Adresse 10 liest, hast du den einen Wert. In 1 den anderen. Einfacher ist es aber, ein Word aus 10 zu lesen. Dann hast du den vollen Wert.

    Dim a as Word
    a=20123
    writeeeprom a,10
    a=0
    readeeprom a,10
    print a 'ergibt 20123

    Ob's an Bascom liegt oder Atmel, weiss ich nicht.

    Ich würd sagen, riskier es doch einfach mal so über IIC. Kaputt gehen kann der EEPROM ja nicht dadurch (denke ich jedenfalls).

    Sollte das nicht gehen, such mal in der Hilfe nach Overlay. Damit werden größere Werte auch in Bytes zerlegt und an der Stelle angelegt, was du angegeben hast.
    Genutzt habe ich das noch nicht, weil es bis jetzt mit der ersten Methode ging.

    Wie Overlay genau funktioniert und es das auch über TWI geht kann ich dir leider nicht sagen.

    Und ich denke mal, der Umweg, erst ins interne EEPROM schreiben, die Bytes auslesen und dann über IIC verschicken entfällt. Sonst bräuchtest du ja kein externen. Außerdem sind die Schreibzyklen ja auch begrenzter als bei externen.

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    die sache mit makeint

    intzahl = makeint(lsb, msb)

    lsb = low(intzahl)
    msb = high(intzahl)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    470
    danke, haus mal über den I²C mein EEPROM geht dabei hoffentlich nicht flöten. Danke für eure Hilfe, aber was mich wundert mit I²C EEPROMS wird häufiger gearbeitet, wieso speichert keiner Words???

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Ich brauchte bis jetzt noch keinen externen EEPROM. Und wenn ich Words speichern wollen würde, würd ich es so machen wie beschrieben.

    Aber das von PikNick habe ich noch nicht verstanden. Das ist doch das zusammenführen von 2 Bytes zum Word, oder nicht? Das Problem war aber doch, das aufteilen in 2 Bytes

  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ich wollt den Zusammenhang mit makeint darstellen.
    Egal, noch mal:

    Ich hab'n Word (2 Bytes)

    Willst du das erste Byte davon, sagst du
    Byte_1 = LOW(word)
    und das andere
    Byte_2 = HIGH(word)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Achso, dann habe ich dich falsch verstanden. Ich dachte, damit kann man das Word auch aufteilen und nicht nur zusammenführen.
    Weil teslanikola ja wusste, das makeint das bewirkt. Hat michnur etwas verwirrt.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.02.2005
    Alter
    29
    Beiträge
    470
    hab ein Word übern I²C geschickt und dann ausgelesen, alles was ich sagen kann, das Word wurde entweder aufgeteilt oder nicht gespeichert auf jeden Fall kamm nicht das raus was reinging , genaueres muss ich aber noch feststellen!

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Sind denn Daten rein gegangen? Ich warte malab, was deine Nachforschungen bringen. Aufgeteilt wäre ja logisch bzw das einzigst mögliche. Ein Byte kann ja kein Word aufnehmen. (Ich weiss, das ist dir auch klar. Sonst hättest du die Frage nicht gestellt)
    Oder du musst Overlay anwenden. Damit sollte es gehen.

  10. #10
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Um mehrere Daten, womöglich unterschiedlicher Länge, zu transferieren, ist auf jeden die "overlay" variante zu empfehlen. Sonst hast du bei jedem Datentyp eine andere Methode rein-/raus. Bei Singles (4 Byte) wird das außerdem eh pervers.
    Dies "EEPROM" restriktion mit int's heißt ja im Grunde nix, als daß du nur eine gerade Zahl von Bytes speichern und lesen kannst (mit aufrunden).
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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