Read

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

Hinweis kann nach Kenntnisnahme deaktiviert werden!

  • Der Befehl Read gibt abhängig vom Datentyp der Empfängervariable eine entsprechende Anzahl von Bytes aus dem Datenspeicher zurück.
    Die Anwendung dieses Befehls gestaltet sich einfach:

    BASCOM-Quellcode

    1. dim MeinByte as Byte
    2. read MeinByte 'lese ein Byte aus dem FlashROM und speicher's in die Variable MeinByte
    3. end
    4. MeinLabel:
    5. data 1, 2, 4, 8, 16, 32, 64, 128
    Der Datentyp der Empfängervariable sollte dem zu lesenden Datum entsprechen, siehe Data.
    Für die korrekte Ausführung benötigt der Befehl allerdings noch die Adresse, unter der ein Datum zu lesen ist. Diese Adresse wird im Doppelregister R8|R9, auch Datapointer genannt, verwaltet und kann leicht mit dem nächsten Befehl Restore in den Datenpointer geschriebenwerden. Die Verwaltung gehört allerdings nicht etwa zur prozessoreigenen Mechanik, sondern wird durch vom Compiler implementiertem Code besorgt. Diese Verwaltung verleiht Read außerdem die Eigenschaft, den Datenpointer zu inkrementieren, und zwar um die Anzahl der Bytes des empfangenden Datentyps. Der Datenpointer wird also nach jedem einzelnen gelesenem Byte automatisch um 1 erhöht.
    Möchte man also eine gegebene Datenreihe durchlaufen, kann das durch eine Zählschleife erfolgen, oder bis ein bestimmtes Datum eingelesen wurde.

    Beispiel

    Im folgendem Beispiel wird die Datenreihe unter 'MeinLabel' fortwährend durchlaufen. Dabei wurde mit dem Befehl Restore ein wenig vorgegriffen.

    BASCOM-Quellcode

    1. dim MeinbyteAs Byte
    2. do
    3. restore Meinlabel 'Lade die Adresse von"MeinLabel" in den Datenpointer R8|R9
    4. do
    5. read Meinbyte 'lese ein Byte aus demFlashROM und speicher's in die Variable MeinByte
    6. loop until Meinbyte = 128
    7. loop
    8. end
    9. MeinLabel:
    10. Data 1 , 2 ,4 , 8 , 16 , 32 , 64 , 128
    Alles anzeigen

    4.232 mal gelesen