kann ne Sub keine variablen übernehmen??? Wär mir ja ganz neu!
kann ne Sub keine variablen übernehmen??? Wär mir ja ganz neu!
o
L_
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!
http://de.youtube.com/watch?v=qV1cZ6jUeGE
Du gibts beim call ja das "40" als literal an, daher das "byval"
bei "byref" (also so wie bei deinem declare) muß das argument in einer variablen stehen
anders:
Konkret heißt das, bei "byval" übergibt er der sub eine KOPIE des wertes, daher kann sie auch im Porgrammspeicher stehen.Code:Declare Sub Hand_drehen_links(v As Byte) dim varia as byte Do varia = 40 Call Hand_drehen_links(varia) Loop End Sub Hand_drehen_links(v As Byte) M_5_v = 1 Compare1b = V M_5_r = 0 Led = 1 End Sub
Bei "byref" (oder nix) übergibt er die (SRAM-) adresse der Variablen
Klaro ?![]()
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Heißt also, er meckert gar nicht über die Zeile, sondern eigentlich darüber, dass in der Deklaration ix angegeben wird?
o
L_
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat!
http://de.youtube.com/watch?v=qV1cZ6jUeGE
Hallo, hier ein praktisches Beispiel:
Ich möchte für einen Schrittmotor die Prozedur Vorwärts1(Schritte) haben, der Wert für die Schrittzahl soll im im Kopf übergeben werden. Ich deklariere die Prozedur Vw1 so:
1. Declare Sub Vw1(byval Schritte As Word)
2. Am Ende des Programms (nach END!) steht die Definition der Prozedur, damit Bascom weiß was abzuarbeiten ist:
Sub Vw1(by Val Schritte As Byte) 'Schrittmotor links drehen
For J = 1 To Schritte
Portb.4 = 1 : Portb.5 = 1 : Waitms 3
Portb.5 = 0 : Waitms 5
Next
End Sub
3. Im Programm rufe ich die Prozedur z.B. auf mit
Call Vw1(50)
Dann dreht der Motor 50 Schritte weit.
jipp klappt danke fuer die hilfe...
@lunarman: bingo, genau
Guck mal da
https://www.roboternetz.de/wissen/in...b_.26_Function
Tip: "byval" ist püraktisch, weil man variable UND Festwerte gemischt übergeben kann
aaaaaaber:
Das Kopieren kommt bei jedem "Call"-Argument dann dazu, das frißt FRAMESIZE + Programmspeicher + Code
(bei einem String ist das ganzschön)
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen