- LiTime Speicher und Akkus         
Ergebnis 1 bis 5 von 5

Thema: Labelsprünge über variable

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    18.10.2004
    Ort
    Cottbus
    Beiträge
    38

    Labelsprünge über variable

    Anzeige

    Praxistest und DIY Projekte
    Ich habe folgendes Problem.
    Es ist irgendwie einfach nicht möglich an GOTO, GOSUB,RESTORE,READEEPROM eine variable als Sprungziel zu übergeben.
    Also entweder funktioniert das wirklich nicht, oder ich stelle mich zu dumm an.
    Wäre schön wenn mir da mal jemand helfen könnte.

    MfG Andreas

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    35
    Beiträge
    1.614
    ne variable mit goto und gosub zu übergeben sollte mit

    ON Var GOTO/GOSUB Label

    gehen.

    und an restore kann man keine variable übergeben sondern nur ein label:

    restore hallo
    ...
    hallo:
    Data 10, 20, 30, 40, 50

    mit readeeprom ist es:

    Dim Var as Byte
    Readeeprom Var, 0 'von der ersten Stelle im EEPROM ein Byte lesen

    Ich hoffe ich hab geholfen...

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    18.10.2004
    Ort
    Cottbus
    Beiträge
    38
    Das trifft es leider nicht so ganz.
    Das ganze ist für ein grafisches Display mit KS108 gedacht.
    Ich wollte mir einen Zeichensatz im 5x7 Formatals Datenblöcke ablegen
    Ungefähr so

    1:
    Data 0,66,127,64,0
    2:
    data 66,97,81,73,70

    Weiterhin wird der vom AD eingelesene Wert umgerechnet, das ergibt ja dann einen Spannungswert der dann in einer Zeichekette liegt.
    Als nächstes wird diese Zeichenkette zerlegt und dann so jedes Zeichen auf dem Display ausgegeben werden.
    Also nehmen wir an der Wert wäre 3,15

    i=left(Zeichenkette,1)

    und jetzt soll in abhängigkeit von i das Datenpaket eingelesen werden
    also in diesem Fall die 3, und dann in einer For Next Schleife abgearbeitet(auf Display ausgeben).

    for x=0 to 4
    ausgabe=lookup x,i
    portb=ausgabe
    gosub ausführen
    next

    Das ganze will aber so nicht funktionieren.
    Mfg Andreas

  4. #4
    Gast
    Hallo

    Versuche es mal über eine einizige Tabelle zu lösen. Dafür mußt du, für jedes Zeichen den Einsprung berechnen und dann die 5 passenden Sätze auslesen.


    Hier mal ein kurzes schnelles Beispiel, was noch verbessert werden kann.
    Die Data zeilen stimmen nicht.


    Code:
    Dim B1 As Byte , I As Byte
    Dim X As Byte
    Dim Ausgabe As Byte
    Dim Zeichen As Byte
    Dim Temp As Byte
    Dim Temp_high As Byte
    
    
    Zeichen = "7"
    
    Temp = Asc(zeichen)                                         'Asc Code Des Zeichen Holen
    Temp = Temp - 48                                            'Offset abziehen, da "0" den ASC Code 48 hat
    Temp = Temp * 5                                             'Einsprung berechnen da immer 5 bytes pro Zeichen benötigt werden
    
    Temp_high = Temp + 4
    For X = Temp To Temp_high                                   'Ende festlegen
    Ausgabe = Lookup(x , Dta2)                                  'Code holen
    Print Ausgabe
    Next
    End                                                         'end program
    
    Dta2:
    Data 23 , 66 , 127 , 64 , 0                                  'Zeichencode für 0   Einsprung mit 0
    Data 12 , 97 , 81 , 73 , 70                                  'Zeichencode für 1   Einsprung mit 5
    Data 28 , 66 , 127 , 64 , 0                                  'Zeichencode für 2   Einsprung mit 10
    Data 3 , 97 , 81 , 73 , 70                                  'Zeichencode für 3   Einsprung mit 15
    Data 78 , 66 , 127 , 64 , 0                                  'Zeichencode für 4   Einsprung mit 20
    Data 11 , 97 , 81 , 73 , 70                                  'Zeichencode für 5   Einsprung mit 25
    Data 94 , 66 , 127 , 64 , 0                                  'Zeichencode für 6   Einsprung mit 30
    Data 51 , 97 , 81 , 73 , 70                                  'Zeichencode für 7   Einsprung mit 35
    Data 27 , 66 , 127 , 64 , 0                                  'Zeichencode für 8   Einsprung mit 40
    Data 44 , 97 , 81 , 73 , 70                                  'Zeichencode für 9   Einsprung mit 45

    MFG
    Dieter

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    18.10.2004
    Ort
    Cottbus
    Beiträge
    38
    Hallo Dieter
    das ist ja ein supertip, gleich ausprobiert und funktioniert prima.
    Ich kam leider jetzt erst dazu mir das anzusehen.

    Muß es nur noch ein bißchen anpassen , da ich ja auch das ganze Alphabet(Groß und Kleinschreibung)dabei haben möchte.

    Vielen Dank erstmal
    Mfg Andreas

Berechtigungen

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

LiTime Speicher und Akkus