patteb
14.12.2010, 20:03
Hallo!
ich bin ziemlich neu in bascom und dies ist auch mein erstes komplett selbst aufgebautes projekt mit einem µC, und anscheinend brauche ich hilfe:
die parameterübergabe bei call funktioniert irgendwie nicht, bzw gibt je nachdem wie ich den variablentyp wähle IMMER 0 (bei integer) oder IMMER 254 (bei byte... wie kommt man da auf so was "krummes" btw?)
ich filter mal kurz die wichtigen codezeilen raus, und häng auch nochmal den kompletten source an.
Das ganze passiert im ATmega16
Const Pos0 = 200
Const Pos1 = 400
Const Pos2 = 600
Const Pos3 = 800
Const Pos4 = 1000
Const Pos5 = 1200
Dim Slt As Integer
Declare Sub Pour(byval Slt As Integer)
[...]
Select Case Makedrink
Case 0:
Call Pour(pos0)
Case 1:
Call Pour(pos1)
[...]
Case 7:
Call Pour(pos2)
Call Pour(pos3)
End Select
[...]
Sub Pour(byval Slt As Integer)
Local I As Integer
For I = 0 To Slt
Toggle Clk1
Toggle Clk2
Waitms 7
Next I
Return
End Sub
also soweit ich das richtig gelesen habe und die helpfile mir das sagt muss das doch stimmen oder?
Im Prinzip sind das ja die code-beispiele, bei denen ich die variablennamen und -typen geändert habe. Ich hatte mich aber gewundert warum in allen beispielen immer nur byte verwendet wird und hab es auch mal so versucht.
aber wie gesagt, selbst wenn ich den datentyp ändere und die auswahl der richtigen PosX innerhalb der sub mache passiert nichts, weil einfach anstatt 0 immer 254 angenommen wird.
und wenn mich das schon vor probleme stellt, stellt euch mal vor wie ich geflucht hab bis ich gemerkt hab, dass ich an den fusebits rumfummeln muss um portc zu verwenden! xD
achja, falls es so ein ähnlicvhes thema schon gab entschuldigt bitte, aber irgendwie hat die suchoption mehrmals gebuggt
ich bin ziemlich neu in bascom und dies ist auch mein erstes komplett selbst aufgebautes projekt mit einem µC, und anscheinend brauche ich hilfe:
die parameterübergabe bei call funktioniert irgendwie nicht, bzw gibt je nachdem wie ich den variablentyp wähle IMMER 0 (bei integer) oder IMMER 254 (bei byte... wie kommt man da auf so was "krummes" btw?)
ich filter mal kurz die wichtigen codezeilen raus, und häng auch nochmal den kompletten source an.
Das ganze passiert im ATmega16
Const Pos0 = 200
Const Pos1 = 400
Const Pos2 = 600
Const Pos3 = 800
Const Pos4 = 1000
Const Pos5 = 1200
Dim Slt As Integer
Declare Sub Pour(byval Slt As Integer)
[...]
Select Case Makedrink
Case 0:
Call Pour(pos0)
Case 1:
Call Pour(pos1)
[...]
Case 7:
Call Pour(pos2)
Call Pour(pos3)
End Select
[...]
Sub Pour(byval Slt As Integer)
Local I As Integer
For I = 0 To Slt
Toggle Clk1
Toggle Clk2
Waitms 7
Next I
Return
End Sub
also soweit ich das richtig gelesen habe und die helpfile mir das sagt muss das doch stimmen oder?
Im Prinzip sind das ja die code-beispiele, bei denen ich die variablennamen und -typen geändert habe. Ich hatte mich aber gewundert warum in allen beispielen immer nur byte verwendet wird und hab es auch mal so versucht.
aber wie gesagt, selbst wenn ich den datentyp ändere und die auswahl der richtigen PosX innerhalb der sub mache passiert nichts, weil einfach anstatt 0 immer 254 angenommen wird.
und wenn mich das schon vor probleme stellt, stellt euch mal vor wie ich geflucht hab bis ich gemerkt hab, dass ich an den fusebits rumfummeln muss um portc zu verwenden! xD
achja, falls es so ein ähnlicvhes thema schon gab entschuldigt bitte, aber irgendwie hat die suchoption mehrmals gebuggt