Guten Abend!

Das oben genannte Problem habe ich nun schon wieder.
Leider hat das erhöhen des Stacks und Frames bisher nichts geholfen (oder muss ich noch weiter erhöhen?).
Hier mein Code:
Code:
$regfile = "m32def.dat"

$crystal = 1000000

'$hwstack = 64

$framesize = 64

$swstack = 64

$lib "glcdKS108.lbx"



Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 2 , Ce2 = 3 , Cd = 4 , Rd = 5 , Enable = 6 , Reset = 7
Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 1




Config Pind.2 = Input
Config Pind.3 = Input
Config Pind.1 = Input


Set Portd.2
Set Portd.3
Set Portd.1

'Enable Timer2

Declare Sub Beleuchtung


Dim Frameindex As Byte
Dim V1 As Byte , V2 As Byte , V3 As Byte
Dim Helligkeiteram As Eram Byte
Dim Mbeleuchtung As Bit


Setfont Font8x8
Cls
Waitms 100

V1 = Helligkeiteram
Ocr2 = Lookup(v1 , Helligkeitswerte)
Mbeleuchtung = 0
Frameindex = 8


Do                                                          'Hauptschleife

Select Case Frameindex

   Case 0 : Gosub Menue
   Case 1:
   Case 8 : Gosub Beleuchtung


End Select



Loop

End




Menue:

   Showpic 86 , 33 , Frame_exit
   Showpic 44 , 33 , Frame_einst
   Showpic 2 , 1 , Frame_uebers
   Wait 1
   Showpic 86 , 33 , Frame_exit_inv
   Showpic 44 , 33 , Frame_einst_inv
   Showpic 2 , 1 , Frame_uebers_inv
   Wait 1

Return



$include "includes\Beleuchtung.bas"

$include "includes\Grafiken.bas"

$include "includes\font8x8.font"
und Beleuchtung.bas
Code:
'Unterprogramm / -menü für die Einstellung der Hintergrundbeleuchtung
'Wichtig!: Variable V1 und V2 müssen im Kopfteil als Byte deklariert werden
'Ebenfalls muss Timer2 als PWM konfiguriert sein


Sub Beleuchtung:

   If Mbeleuchtung = 0 Then

   Line(22 , 30) -(105 , 30) , 255
   Line(22 , 41) -(105 , 41) , 255
   Line(22 , 31) -(22 , 40) , 255
   Line(105 , 31) -(105 , 40) , 255

   Lcdat 1 , 1 , "Beleuchtung"
   Lcdat 2 , 1 , V1
   V1 = V1 - 1
   For V3 = 0 To V1
   V2 = V2 * 8
   V2 = V2 + 24
   Showpic V2 , 35 , Balken8x8
   Next

   Mbeleuchtung = 1

   End If


   V2 = V1 * 10

   Lcdat 4 , 47 , V2 ; "%"
   Lcdat 3 , 1 , V1
   Debounce Pind.2 , 0 , Heller
   Debounce Pind.3 , 0 , Dunkler
   Debounce Pind.1 , 0 , Speichern1



End Sub


Heller:

   If V1 = 10 Then
   Return
   Else
   V1 = V1 + 1
   Ocr2 = Lookup(v1 , Helligkeitswerte)
   V2 = V1 * 8
   V2 = V2 + 16
   Showpic V2 , 35 , Balken8x8
   End If

Return


Dunkler:

   If V1 = 0 Then
   Return
   Else
   V2 = V1 * 8
   V2 = V2 + 16
   Showpic V2 , 35 , Balken8x8 , 1
   V1 = V1 - 1
   Ocr2 = Lookup(v1 , Helligkeitswerte)
   End If

Return


Speichern1:

   Helligkeiteram = V1
   Frameindex = 0
   Mbeleuchtung = 0
   Cls

Return

Helligkeitswerte:

   Data 0 , 3 , 5 , 8 , 12 , 21 , 34 , 56 , 93 , 154 , 255
und Grafik.bas
Code:
Frame_einst:

   $bgf "Grafiken\Frame_einst.bgf"

Frame_einst_inv:

   $bgf "Grafiken\Frame_einst_inv.bgf"

Frame_exit:

   $bgf "Grafiken\Frame_exit.bgf"

Frame_exit_inv:

   $bgf "Grafiken\Frame_exit_inv.bgf"

Frame_uebers:

   $bgf "Grafiken\Frame_uebers.bgf"

Frame_uebers_inv:

   $bgf "Grafiken\Frame_uebers_inv.bgf"

Balken8x8:

   $bgf "Grafiken\Balken8x8.bgf"
An dieser Stelle soll nun gesagt sein, dass es noch ein wenig kaotisch aussieht und ich mir dessen bewusst bin.

Folgendes passiert nun auf dem Display:
Die linke Displayhälfte funtioniert einwandfrei, die rechte ist allerdings um 4 Zeilen und ein bisschen verschoben (nach oben oder unten...kann man nicht sagen).
Wenn ich nun die For Schleife aus der Beleuchtung.bas auskommentiere klappts Wunderbar. Liegts einfach an den vielen Variablen?

Vielen Dank!

Marten83