DATA/de

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(See also)
(Remarks)
Zeile 15: Zeile 15:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
= <span class="f_Header">Remarks</span> =
+
= <span class="f_Header">Anmerkungen</span> =
 
<div style="padding: 0px; margin: 0px 0px 0px 4px;">
 
<div style="padding: 0px; margin: 0px 0px 0px 4px;">
 
{| width="488" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;"
 
{| width="488" cellspacing="0" cellpadding="1" border="1" style="border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;"
 
|- style="vertical-align: top;"
 
|- style="vertical-align: top;"
 
| valign="top" width="16%" style="width: 74px; border: 1px solid rgb(0, 0, 0);" |  
 
| valign="top" width="16%" style="width: 74px; border: 1px solid rgb(0, 0, 0);" |  
Var
+
var
  
 
| valign="top" width="100%" style="width: 405px; border: 1px solid rgb(0, 0, 0);" |  
 
| valign="top" width="100%" style="width: 405px; border: 1px solid rgb(0, 0, 0);" |  
Numeric or string constant.
+
Numerische- oder Zeichenketten-Konstante.
  
 
|}
 
|}
Zeile 29: Zeile 29:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
The DATA related statements use the internal registers pair R8 and R9 to store the data pointer.
+
Es wird das interne Registerpaar R8 und R9 verwendet um dan DAtenzeiger zu speichern.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
To store a " sign on the data line, you can use&nbsp;:
+
Um ein " Zeichen in einer DATA-Zeile zu speichern kann man
 +
 
  
 
DATA $34
 
DATA $34
 +
 +
benutzen.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
The $-sign tells the compiler that the ASCII value will follow.
+
Das $-Zeichen sagt dem Compiler dass ein ASCII-Zeichen folgt.
  
You can use this also to store special characters that can't be written by the editor such as chr(7)
+
Dies kann auch benutzt werden um Sonderzeichen zu speichern, die nicht mit dem Editor geschrieben werden können wie zum Beispiel chr(7).
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
Another way to include special ASCII characters in your string constant is to use {XXX}. You need to include exactly 3 digits representing the ASCII character. For example 65 is the ASCII number for the character A.
+
Eine andere Möglichkeit, ASCII-Sonderzeichen in einer Zeichenkette einzuschließen ist, {XXX} zu benutzen. Man muss genau 3 Ziffern benutzen, die das ASCII-Zeichen representieren. Zum Beispiel ist 65 die ASCII-Zahl für den Buchstaben A.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
Zeile 53: Zeile 56:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
Will be read as TESTA.
+
Wird gelesen als TESTA.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
Zeile 59: Zeile 62:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
While&nbsp;:
+
Während&nbsp;:
  
DATA "TEST{65}" will be read as&nbsp;:
+
DATA "TEST{65}" gelesen wird als:
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
TEST{65}. This because only 2 digits were included instead of 3.
+
TEST{65} weil nur 2 Ziffern geschrieben wurden statt 3.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
{xxx} works only for string constants. It will also work in a normal string assignment&nbsp;:
+
{xxx} funktioniert nur mit Zeichenkettenkonstanten. Es funktioniert auch bei einer normalen Zeichenkettenzuweisung.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
s = "{065}" . This will assign A to the string s.
+
s = "{065}" . Weist der Zeichenketten-Variablen s ein A zu.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
Zeile 79: Zeile 82:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
Because the DATA statements allow you to generate an EEP file to store in EEPROM, the&nbsp;[[$DATA]]&nbsp;and&nbsp;[[$EEPROM]]&nbsp;directives have been added. Read the description of these directives to learn more about the DATA statement.
+
Weil der DATA-Befehl es auch ermöglicht, eine EEP-Datei für das EEPROM zu generieren
 +
wurden die Direktiven [[$DATA]] und [[$EEPROM]] eingeführt. Lesen Sie die Beschreibungen dieser Direktiven um mehr über den DATA-Befehl zu lernen.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
The DATA statements must not be accessed by the flow of your program because the DATA statements are converted to the byte representation of the DATA.
+
Die DATA-Zeilen dürfen nicht durch den normalen Programmablauf zugegriffen werden weil die DATA-Zeilen zu den Byte-Represantionen der Daten umgewandelt werden.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
When your program flow enters the DATA lines, unpredictable results will occur.
+
Wenn der Programmlauf in den DATA-Bereich kommt dann ergibt das unvorhersehbare Ergebnisse
  
So as in QB, the DATA statement is best be placed at the end of your program or in a place that program flow will no enter.
+
Deswegen sollten - wie in QB - die DATA-Zeilen am besten am Ende des Programms plaziert werden oder an einer Stelle wo sie nicht vom Programmablauf erreicht werden.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
For example this is fine:
+
Dieses ist ein korrektes Beispiel:
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
Print "Hello"
+
Print "Hallo"
  
 
Goto jump
 
Goto jump
Zeile 107: Zeile 111:
 
Jump:
 
Jump:
  
'because we jump over the data lines there is no problem.
+
'Weil wir über den Datenbereich springen gibt es keine Probleme.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
The following example will case some problems:
+
Das folgende Beispiel führt zu Problemen:
  
 
Dim S As String * 10
 
Dim S As String * 10
  
Print "Hello"
+
Print "Hallo"
  
 
Restore lbl
 
Restore lbl
Zeile 133: Zeile 137:
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>
  
When the END statement is used it must be placed BEFORE the DATA lines.
+
Wenn der END-Befehl benutzt wird dann muss er VOR den DATA-Bereichen geschrieben werden.
  
 
<span style="font-family: Arial;">&nbsp;</span>
 
<span style="font-family: Arial;">&nbsp;</span>

Version vom 6. März 2013, 00:14 Uhr

Inhaltsverzeichnis

= (**COPIED FROM ENGLISH PAGE**) === Action

Specifies constant values to be read by subsequent READ statements.

 

 

Syntax

DATA var [, varn]

 

 

Anmerkungen

var

Numerische- oder Zeichenketten-Konstante.

 

Es wird das interne Registerpaar R8 und R9 verwendet um dan DAtenzeiger zu speichern.

 

Um ein " Zeichen in einer DATA-Zeile zu speichern kann man


DATA $34

benutzen.

 

Das $-Zeichen sagt dem Compiler dass ein ASCII-Zeichen folgt.

Dies kann auch benutzt werden um Sonderzeichen zu speichern, die nicht mit dem Editor geschrieben werden können wie zum Beispiel chr(7).

 

Eine andere Möglichkeit, ASCII-Sonderzeichen in einer Zeichenkette einzuschließen ist, {XXX} zu benutzen. Man muss genau 3 Ziffern benutzen, die das ASCII-Zeichen representieren. Zum Beispiel ist 65 die ASCII-Zahl für den Buchstaben A.

 

DATA "TEST{065}"

 

Wird gelesen als TESTA.

 

 

Während :

DATA "TEST{65}" gelesen wird als:

 

TEST{65} weil nur 2 Ziffern geschrieben wurden statt 3.

 

{xxx} funktioniert nur mit Zeichenkettenkonstanten. Es funktioniert auch bei einer normalen Zeichenkettenzuweisung.

 

s = "{065}" . Weist der Zeichenketten-Variablen s ein A zu.

 

 

Weil der DATA-Befehl es auch ermöglicht, eine EEP-Datei für das EEPROM zu generieren wurden die Direktiven $DATA und $EEPROM eingeführt. Lesen Sie die Beschreibungen dieser Direktiven um mehr über den DATA-Befehl zu lernen.

 

Die DATA-Zeilen dürfen nicht durch den normalen Programmablauf zugegriffen werden weil die DATA-Zeilen zu den Byte-Represantionen der Daten umgewandelt werden.

 

Wenn der Programmlauf in den DATA-Bereich kommt dann ergibt das unvorhersehbare Ergebnisse

Deswegen sollten - wie in QB - die DATA-Zeilen am besten am Ende des Programms plaziert werden oder an einer Stelle wo sie nicht vom Programmablauf erreicht werden.

 

Dieses ist ein korrektes Beispiel:

 

Print "Hallo"

Goto jump

DATA "test"

 

Jump:

'Weil wir über den Datenbereich springen gibt es keine Probleme.

 

Das folgende Beispiel führt zu Problemen:

Dim S As String * 10

Print "Hallo"

Restore lbl

Read S

 

DATA "test"

 

Print S

 

 

Wenn der END-Befehl benutzt wird dann muss er VOR den DATA-Bereichen geschrieben werden.

 

 

 

Difference with QB

Integer and Word constants must end with the %-sign.

Long constants must end with the &-sign.

Single constants must end with the !-sign.

Double constants must end with the #-sign.

 

 

Siehe auch

READ , RESTORE , $DATA , $EEPROM , LOOKUPLOOKUPSTR , LOOKDOWN

 

 

Beispiel


'-----------------------------------------------------------------------------------------
'name : readdata.bas
'copyright : (c) 1995-2005, MCS Electronics
'purpose : demo : READ,RESTORE
'micro : Mega48
'suited for demo : yes
'commercial addon needed : no
'-----------------------------------------------------------------------------------------
 
$regfile = "m48def.dat" ' Mikrocontroller
$crystal = 4000000 ' Taktfrequenz
$baud = 19200 ' Baudrate
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 10 ' default use 10 for the SW stack
$framesize = 40 ' default use 40 for the frame space
 
Dim A As Integer , B1 As Byte , Count As Byte
Dim S As String * 15
Dim L As Long
Restore Dta1 'Zeiger auf gespeicherte Daten setzen
For Count = 1 To 3 'Für jedes Datenelement
Read B1 : Print Count ; " " ; B1
Next
 
Restore Dta2 'Zeiger aud Datentabelle setzen
For Count = 1 To 2 'Für jedes Datenelement
Read A : Print Count ; " " ; A
Next
 
Restore Dta3
Read S : Print S
Read S : Print S
 
 
Restore Dta4
Read L : Print L 'long type
 
 
'demonstration of readlabel
Dim W As Iram Word At 8 Overlay ' location is used by restore pointer
'note that W does not use any RAM it is an overlayed pointer to the data pointer
W = Loadlabel(dta1) ' loadlabel expects the labelname
Read B1
Print B1
End
 
 
Dta1:
Data &B10 , &HFF , 10
Dta2:
Data 1000% , -1%
 
Dta3:
Data "Hello" , "World"
'Zu beachten: Integer-Werte (>255 or <0) müssen mit einem %-Zeichen enden.
'Auch zu beachten: Der Datentyp muss dem Datentyp der Variablen im READ-Befehl entsprechen.
 
Dta4:
Data 123456789&
'Zu beachten: LONG-Werte müssen mit einem &-Zeichen enden.
'Auch zu beachten: Der Datentyp muss dem Datentyp der Variablen im READ-Befehl entsprechen.

Languages   English Deutsch  
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
In anderen Sprachen
Sprache