Hallo PhoenixTS82!Zitat von PhoenixTS82
http://halvar.at/elektronik/kleiner_..._mit_computer/
Suche nach "byval".
mfg
Gerold
:-)
kann mir einer agen warum das nicht geht ?
zur info: einfache 6x5 led matrix an porta 0-5 und portc 0-4
dabei sagt er immer ich soll byval benutzten, wenn ich das mache läuft aber auch nicht!Code:declare sub led(x as byte, y as byte) call led(1,1) sub led(x as byte, y as byte) porta = 0 'erstmal alle leds auf 0 setzen portc = 0 x = x - 1 y = y - 1 porta.x = 1 portc.y = 1 end sub
es leuchtet immer 2,2 egal was ich einstelle
edit: kan mir einer mal byval und byref näher erklären die hilfe kapier ich nciht so ganz....
Hallo PhoenixTS82!Zitat von PhoenixTS82
http://halvar.at/elektronik/kleiner_..._mit_computer/
Suche nach "byval".
mfg
Gerold
:-)
hallo phoenix,
du möchtest wahrscheinlich, dass immer eine led leuchtet?!?!
dazu benötigst du erstmal eine schleife..... entweder du machst das mit einer do-loop schleife (was bei Bascom allerdings schwierig wird, da du nur 1 eine schleife gleichzeitig laufen lassen kannst) oder du machst es mit einer bestimmten anzahl an durchläufen, z.b.:
local i as word
for i = 1 to 10 '10 durchläufe
porta = &b00000000 'alle pins von porta auf 0
portc = &b00000000 'alle pins von portc auf 0
x = x - 1
y = y - 1
porta.x = 1
porta.y = 1
next i
das "porta = 0" funzt so nicht, du kannst entweder alle ports einzeln auf 0 setzen:
porta.0 = 0
porta.1 = 0
porta.2 = 0
usw.
oder aber so wie ich es gerade in dem beispiel gemacht habe:
porta = &b00000000
gruß
chris
hallo che, danke erstmal für deine antwort aber ich meinte eher was anderes.
also porta = 0 fuktioniert,
porta = 0 ist gleich porta = &B00000000
porta = 7 ist gleich porta = &B00000111
das übersetzt er automatisch
mein problem lag eher dadran, das er die werte der aub nciht übernimmt, ich weiss nciht wie das byval funktioniert...
ohne gibt es ne fehlermeldung....
btw: was ist/ macht local ?
local ist im prinzip fast das gleiche wie dim , nur das local eine variable nur innerhalb einer sub declariert, das bedeutet, du kannst i in mehreren subs unabhängig voneindander verwenden!!
ich würde das so machen:
x = 1
y = 1
call led( x , y )
gruß
Hallo PhoenixTS82!Zitat von PhoenixTS82
Mir ist gerade eingefallen, dass ich auch mal so ein Problem hatte. Ich glaube das liegt an Bascom und man muss das Problem über eine **externe** Variable (unschön) lösen.
Probier es mal aus. Vielleicht funktioniert es.Code:dim tmp as byte sub led(x as byte, y as byte) tmp = x - 1 porta.tmp = 1 ... end sub
mfg
Gerold
:-)
ok es funktioniert, der fehler war recht banal
ich hatte im haupt programm nur geschireben
call led(1,1)
OHNE do und loop, deswegen hat er sich aufgehangen, weil er nur einmal das programm und die sub durchgelaugen ist und danach stehen blieb.
funktioniert also so wie oben beschrieben.....
p.s. gibt es einen befehl wie INPUT, den ich NICHT mit enter bestätigen muss ?
ich wil quasi mit w,a,s,d die led wandern lassen
du möchtest also mit 4 tastern(für die vier richtungen) die led, die leuchten soll, auswählen?!?!
wenn ich das so richtig verstanden habe, dann probiers mal so:
if pind.0 = 0 then
waitms 200
if x < 6 then
x = x + 1
else
x = 1
endif
elseif pind.1 = 0 then
waitms 200
if x > 1 then
x = x - 1
else
x = 6
endif
endif
if pind.2 = 0 then
waitms 200
if y < 5 then
y = y + 1
else
y = 1
endif
elseif pind.3 = 0 then
waitms 200
if y > 1 then
y = y - 1
else
y = 5
endif
endif
gruß
hmm ok, ich hab mich falsch ausgedrückt...
nicht über pins sondern tasten auf der tastatut (entweder courortasten oder w,a,s,d)
im moment muss ich
w (enter)
s (enter)
ect. tippen
ich will gerne ohne mit enter zu bestätigen die aktion ausführen.
bei pascal hiess das mal readkey oder so, geht das auch überhaupt mit nem terminal fenster oder muss ich doch auf tasten umsteigen ???
Hallo Phoenix!Zitat von PhoenixTS82
Entweder mit INKEY, ISCHARWAITING:
- http://halvar.at/elektronik/kleiner_..._vom_computer/
- http://avrhelp.mcselec.com/index.html?inkey.htm
- http://avrhelp.mcselec.com/index.html?ischarwaiting.htm
oder mit CONFIG SERIALIN (BYTEMATCH=ALL):
- http://halvar.at/elektronik/kleiner_...om_computer_2/
- http://avrhelp.mcselec.com/index.htm...g_serialin.htm
mfg
Gerold
:-)
Lesezeichen