PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler bei mehr als 2 Parametern in einer SUB



pickelrobert
08.10.2007, 19:33
BASCOM-AVR IDE Version : 1.11.8.3

Hallo,

ich habe bei der Übergabe von mehr als 2 Parametern Probleme. Konkret: Die einer SUB übergebenen Werte sind in dieser falsch.



$regfile = "m16def.dat"
$crystal = 4000000
$baud = 9600

Declare Sub Test(byval Para1 As Byte , Byval Para2 As Byte , Byval Para3 As Byte
, Byval Para4 As Byte , Byval Para5 As Byte)

Print Chr(27) ; "[2J";
Print "SUB Parameter Uebergabe"
Call Test(11 , 22 , 33 , 44 , 55)

End

Sub Test(para1 As Byte , Para2 As Byte , Para3 As Byte , Para4 As Byte , Para5
As Byte)
Print "Parameter 1:" + Str(para1)
Print "Parameter 2:" + Str(para2)
Print "Parameter 3:" + Str(para3)
Print "Parameter 4:" + Str(para4)
Print "Parameter 5:" + Str(para5)
End Sub


Was ist da falsch ?

Danke und Gruß

MeckPommER
08.10.2007, 20:50
Hast du mal versucht, die Parameter mit "byval" anstatt wie jetzt per default "byref" zu übergeben?

Per Default wird einer Sub oder Funktion nicht der Wert einer Variablen übergeben, sondern nur der Pointer auf diese Variable. Da könnte es meiner Meinung nach zu Problemen kommen, wenn es sich, wie in deinem Beispiel nicht um Variablen handelt.

Gruß MeckPommER

roboterheld
08.10.2007, 20:54
junge, les dir mal die anweisung durch von bascom, bevor du so ein dummes zeug schreiben tust. wer des lesens mächtig ist, ist einen grossen schritt voraus.

setzt das mal drunter oder aktiviere es im menü :


$hwstack = 32
$swstack = 32
$framesize = 64


dann klappt es mit der nachbarin!!!!!!!



Hast du mal versucht, die Parameter mit "byval" anstatt wie jetzt per default "byref" zu übergeben?


das ist nicht der fehler!!!!!! befasse dich mal mit byval und byref.

MeckPommER
08.10.2007, 21:06
@roboterheld könnte es sein, das du beim schreiben der zeilen auf nem kaktus gesessen hast?

ich habe mich mit byval und byref befasst, bin aber sicherlich nicht frei davon, auch gelegentlich mal fehler zu machen. ich denke, das mein roboter marvin belegt, das ich nicht ganzlich schwammhirnig bin :)

ich war einfach nur der meinung, das eine byref-referenzierung probleme bereiten könnte, da ein varpointer erwartet wird (liegt im ram) und ein wert übergeben wird (liegt im programspeicher?).

nun, hab mich wohl geirrt. jeder kann mal falsch denken. auch ich. auch du.
falls du mir das vorgehen von bascom in dieser hinsicht erläutern könntest, wäre ich dir zutiefst verbunden :)

Gruß MeckPommER

roboterheld
08.10.2007, 21:12
das ist kein argument. ich kenne schwachköpfe die nicht mit beiden beinen in der welt stehen und auch so etwas auf der pfanne haben.

mfg

roboterheld
08.10.2007, 21:16
....falls du mir das vorgehen von bascom in dieser hinsicht erläutern könntest, wäre ich dir zutiefst verbunden....


schau in der bascom-hilfe nach, da steht alles.

MeckPommER
08.10.2007, 21:20
Dazu fällt mir dann nur der gute Nuhr ein *koppschüttel*

pickelrobert
10.10.2007, 16:02
Danke für Informationen