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:

Code:
$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:



Code:
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