confUsed?
07.02.2007, 21:13
hey ho
hab mit vor ca 2 wochen ein µC board (atmega32) gebastelt und hab mittlerweile auch ein 240x128 glcd dran hängen. jetzt versuch ich grad ne sehr primitive version vom warscheinlich eh bekannten handy spiel "snake" zu programmieren.
follgendes hab ich bis jetzt:
$regfile = "m32def.dat" ' specify the used micro
$crystal = 16000000 ' used crystal frequency
$baud = 19200 ' use baud rate
$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
Config Portd = Input
Portd = 1
Taster1 Alias Pind.0
Taster2 Alias Pind.1
Taster3 Alias Pind.2
Taster4 Alias Pind.3
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portb , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
Config Porta = 1
Config Portd.0 = 1
Config Portd.1 = 1
Config Portd.2 = 1
Config Portd.3 = 1
Dim X As Byte , Y As Byte
Cls
Cursor Off
Wait 1
Locate 1 , 1
'LINE(X0,Y0) - (X1,Y1), on/off
Line(1 , 1) -(1 , 126) , 255 ' links oben - links unten
Line(1 , 1) -(238 , 1) , 255 ' links oben - rechts oben
Line(238 , 126) -(1 , 126) , 255 ' rechts unten - links unten
Line(238 , 126) -(238 , 1) , 255 ' rechts unten - rechts oben
Waitms 1
X = 5
Y = 5
Beginn:
Erhoeher_rechts:
If Taster1 = 0 Then
X = X + 1
Waitms 50
Pset X , Y , 255
Goto Erhoeher_unten
Else
Goto Erhoeher_unten
End If
Erhoeher_unten:
If Taster2 = 0 Then
Y = Y + 1
Waitms 50
Pset X , Y , 255
Goto Erhoeher_unten
Else
Goto Beginn
End If
damit kann ich die linie ausgehend von pixel 5,5 über 2 taster nach rechts und nach unten wandern lassen. solang eine taste gedrückt is wächst die linie in diese richtung
die version für 4 wege hätte dann so ausgeschaut:
Waitms 1
X = 5
Y = 5
Beginn:
Zaehler_rechts:
If Taster1 = 0 Then
X = X + 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_rechts
Else
Goto Zaehler_unten
End If
Zaehler_unten:
If Taster2 = 0 Then
Y = Y + 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_unten
Else
Goto Zaehler_oben
End If
Zaehler_oben:
If Taster3 = 0 Then
X = X - 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_oben
Else
Goto Zaehler_links
End If
Zaehler_links:
If Taster4 = 0 Then
Y = Y - 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_links
Else
Goto Beginn
End If
aber jetzt fängt die linie von punkt 5,5 an entweder immer nach rechts oder nach unten zu laufen, ohne das eine taste gedrückt wird. ich hab allerdings keine ahnung warum? ist die anzahl der loops begrenzt? wär net wenn mir wer helfen könnte
mfg
conf
hab mit vor ca 2 wochen ein µC board (atmega32) gebastelt und hab mittlerweile auch ein 240x128 glcd dran hängen. jetzt versuch ich grad ne sehr primitive version vom warscheinlich eh bekannten handy spiel "snake" zu programmieren.
follgendes hab ich bis jetzt:
$regfile = "m32def.dat" ' specify the used micro
$crystal = 16000000 ' used crystal frequency
$baud = 19200 ' use baud rate
$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
Config Portd = Input
Portd = 1
Taster1 Alias Pind.0
Taster2 Alias Pind.1
Taster3 Alias Pind.2
Taster4 Alias Pind.3
Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portb , Ce = 2 , Cd = 3 , Wr = 0 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 8
Config Porta = 1
Config Portd.0 = 1
Config Portd.1 = 1
Config Portd.2 = 1
Config Portd.3 = 1
Dim X As Byte , Y As Byte
Cls
Cursor Off
Wait 1
Locate 1 , 1
'LINE(X0,Y0) - (X1,Y1), on/off
Line(1 , 1) -(1 , 126) , 255 ' links oben - links unten
Line(1 , 1) -(238 , 1) , 255 ' links oben - rechts oben
Line(238 , 126) -(1 , 126) , 255 ' rechts unten - links unten
Line(238 , 126) -(238 , 1) , 255 ' rechts unten - rechts oben
Waitms 1
X = 5
Y = 5
Beginn:
Erhoeher_rechts:
If Taster1 = 0 Then
X = X + 1
Waitms 50
Pset X , Y , 255
Goto Erhoeher_unten
Else
Goto Erhoeher_unten
End If
Erhoeher_unten:
If Taster2 = 0 Then
Y = Y + 1
Waitms 50
Pset X , Y , 255
Goto Erhoeher_unten
Else
Goto Beginn
End If
damit kann ich die linie ausgehend von pixel 5,5 über 2 taster nach rechts und nach unten wandern lassen. solang eine taste gedrückt is wächst die linie in diese richtung
die version für 4 wege hätte dann so ausgeschaut:
Waitms 1
X = 5
Y = 5
Beginn:
Zaehler_rechts:
If Taster1 = 0 Then
X = X + 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_rechts
Else
Goto Zaehler_unten
End If
Zaehler_unten:
If Taster2 = 0 Then
Y = Y + 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_unten
Else
Goto Zaehler_oben
End If
Zaehler_oben:
If Taster3 = 0 Then
X = X - 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_oben
Else
Goto Zaehler_links
End If
Zaehler_links:
If Taster4 = 0 Then
Y = Y - 1
Waitms 50
Pset X , Y , 255
Goto Zaehler_links
Else
Goto Beginn
End If
aber jetzt fängt die linie von punkt 5,5 an entweder immer nach rechts oder nach unten zu laufen, ohne das eine taste gedrückt wird. ich hab allerdings keine ahnung warum? ist die anzahl der loops begrenzt? wär net wenn mir wer helfen könnte
mfg
conf