Archiv verlassen und diese Seite im Standarddesign anzeigen : Labelsprünge über variable
andysafe
27.11.2004, 15:44
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
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
andysafe
29.11.2004, 10:26
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
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.
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
andysafe
03.12.2004, 09:39
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.