Lookup

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

  • Lookup gibt einen Wert aus einer Datentabelle anhand eines Index zurück.
    Syntax

    BASCOM-Quellcode

    1. Zielvariable = Lookup(index, Label)
    • Index darf eine maximal 16 Bit große Variable oder Konstante sein, d.h. der höchste anwendbare Index ist 65535.
    • Indizes beginnen von 0 an.
    • Alle Elemente einer Datentabelle müssen vom selben Typ sein.
    • Die Zielvariable muss vom selben Typ wie die zu lesenden Daten sein.
    Der Index wird nicht auf Überschreitung von Tabellengrenzen geprüft. Der Programmierer muss also sicherstellen, dass der Zugriff auf den Datenspeicher in einem gültigen Bereich, also innerhalb der Grenzen des gefragten Datenpools geschieht. Überschreitungen führen in der Regel zu falschen Ergebnissen, was je nach System unvorhersehbare Folgen haben kann. Das folgende einfache Beispiel demonstriert die Anwendung von Lookup. Dabei werden die Bitmuster für die Ziffern 0 bis 9 aus einer LUT geladen und direkt an den Port gereicht, an dem sich eine Sieben-Segment-Anzeige befindet. Die For-Schleife bestimmt bereits die Grenzen des Index 'Ziffer'.

    Beispiel

    BASCOM-Quellcode

    1. $regfile = "m32def.dat"
    2. $crystal = 8000000
    3. $hwstack = 40
    4. $swstack = 16
    5. $framesize = 32
    6. Config Porta = Output
    7. ' A.0(a), A.1(b), A.2(c), A.3(d), A.4(e),A.5(f), A.6(g)
    8. Dim Ziffer As Byte
    9. Do
    10. For Ziffer = 0 To 9
    11. Porta = Lookup(ziffer , Lut_7seg)
    12. Wait 1
    13. Next
    14. Loop
    15. End
    16. '________________________________________
    17. '----------------------------------------
    18. 'Common kathode
    19. ' a
    20. ' ____
    21. ' f | | b
    22. ' |_g__|
    23. ' e | | c
    24. ' |____|
    25. ' d
    26. Lut_7seg:
    27. ' _gfedcba
    28. Data &B00111111 '0
    29. Data &B00000110 '1
    30. Data &B01011011 '2
    31. Data &B01001111 '3
    32. Data &B01100110 '4
    33. Data &B01101101 '5
    34. Data &B01011101 '6
    35. Data &B00000111 '7
    36. Data &B01111111 '8
    37. Data &B01100111 '9
    Alles anzeigen

    745 mal gelesen