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:
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 richtungCode:$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
die version für 4 wege hätte dann so ausgeschaut:
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önnteCode: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
mfg
conf







Zitieren

Lesezeichen