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:
und Beleuchtung.basCode:$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 Grafik.basCode:'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
An dieser Stelle soll nun gesagt sein, dass es noch ein wenig kaotisch aussieht und ich mir dessen bewusst bin.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"
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







Zitieren

Lesezeichen