MelMan
08.08.2008, 18:43
Nabend zusammen,
Ich habe folgendes Problem: Habe ein 128*64 LCD an einem MEGA32. Hab verschiedene Menüs, die ich über einen Touchcontroller ansteuern kann. Das funktioniert soweit auch alles. Nun wollte ich eine Funktion einprogrammieren dass wenn nach 15 sek keine Bedienung/Eingabe über den Touchcontroller erfolgt, das Hauptmenu angezeit wird. Seit ich nun den Timer programmiert und verwendet habe, bekomme ich meine Menus immer total versetzt angezeigt (gebe die Menus mit Showpic aus) sodass man nichts mehr erkennen kann. Nehme ich den Timer wieder raus, läuft alles bestens. Weis da einer weiter? Hier mal Ausschnitte aus dem Programmcode:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600
$lib "glcdKS108.lib"
Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Portd , Ce = 2 , Ce2 = 3 , Cd = 4 , Rd = 5 , Reset = 7 , Enable = 6
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Timer1 = Timer , Prescale = 256
Stop Timer1
On Timer1 Cntfull
Enable Interrupts
Config Portb.0 = Output
Portb.0 = 1
Dim Beltimeist As Byte , Beltimesoll As Byte , Menutimeist As Byte , Menutimesoll As Byte
Dim Temp As Byte , X As Word , Y As Word
Dim Menu As Integer
Dim Nacht As Bit
Dim Menul As Integer
Start Adc
Print "Alles wird übertragen"
Showpic 0 , 0 , Mainmenu
Menu = 0
Menul = 0
Beltimesoll = 15
Beltimeist = 15
Menutimesoll = 15
Menutimeist = 15
Do
If X > 20 And Y > 20 Then : Beltimeist = Beltimesoll : Menutimeist = Menutimesoll : End If
If Beltimeist <= 0 Then : Portb.0 = 0 : End If
If Menutimeist <= 0 Then : Menu = 0 : Showpic 0 , 0 , Mainmenu : End If
If Menu <> 0 Then : Start Timer1 : Else : Stop Timer1 : End If
Select Case Menu
Case 0 : Gosub Menu0
Case 1 : Gosub Menu1
Case 2 : Select Case Menul
Case 0 : Gosub Menul0
Case 1 : Gosub Menul1
Case 2 : Gosub Menul2
Case 3 : Gosub Menul3
Case 4 : Gosub Menul4
End Select
Case 3 : Gosub Menu3
Case 4 : Gosub Menu4
Case 5 : Gosub Menu5
Case 6 : Gosub Menu6
Case 7 : Gosub Menu7
Case 8 : Gosub Menu8
Case 9 : Gosub Menu9
Case 10 : Gosub Menu10
Case 11 : Gosub Menu11
Case 12 : Gosub Menu12
End Select
Waitms 200
Loop
End
.
.
.
Cntfull:
Beltimeist = Beltimeist - 1
Menutimeist = Menutimeist - 1
Return
Mainmenu:
$bgf "mainmenu.bgf"
Musik:
$bgf "musik.bgf"
Musikplayer:
$bgf "Musik_player.bgf"
Musiknoconn:
$bgf "Musik_noconnection.bgf"
Steuerung:
$bgf "steuerung.bgf"
Steuerungl1:
$bgf "Steuerung_Lampe1.bgf"
Steuerungl2:
$bgf "Steuerung_Lampe2.bgf"
Steuerungl3:
$bgf "Steuerung_Lampe3.bgf"
Steuerungl4:
$bgf "Steuerung_Lampe4.bgf"
Pccontrol:
$bgf "PCControl.bgf"
Einstellungen:
$bgf "Einstellungen.bgf"
Einstellungen_beltime:
$bgf "Einstellungen_Beltime.bgf"
Einstellungen_kontrast:
$bgf "Einstellungen_Kontrast.bgf"
Einstellungen_menutime:
$bgf "Einstellungen_Menutime.bgf"
Einstellungen_nachts_aus:
$bgf "Einstellungen_Nachts_Aus.bgf"
Einstellungen_nachts_ein:
$bgf "Einstellungen_Nachts_Ein.bgf"
Einstellungen_nachts_eingabe_bis:
$bgf "Einstellungen_Nachts_Eingabe_Bis.bgf"
Einstellungen_nachts_eingabe_von:
$bgf "Einstellungen_Nachts_Eingabe_Von.bgf"
mfg mel
EDIT: x und y sind die übertragenen Koordinaten vom Touchcontroller
Ich habe folgendes Problem: Habe ein 128*64 LCD an einem MEGA32. Hab verschiedene Menüs, die ich über einen Touchcontroller ansteuern kann. Das funktioniert soweit auch alles. Nun wollte ich eine Funktion einprogrammieren dass wenn nach 15 sek keine Bedienung/Eingabe über den Touchcontroller erfolgt, das Hauptmenu angezeit wird. Seit ich nun den Timer programmiert und verwendet habe, bekomme ich meine Menus immer total versetzt angezeigt (gebe die Menus mit Showpic aus) sodass man nichts mehr erkennen kann. Nehme ich den Timer wieder raus, läuft alles bestens. Weis da einer weiter? Hier mal Ausschnitte aus dem Programmcode:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600
$lib "glcdKS108.lib"
Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Portd , Ce = 2 , Ce2 = 3 , Cd = 4 , Rd = 5 , Reset = 7 , Enable = 6
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Timer1 = Timer , Prescale = 256
Stop Timer1
On Timer1 Cntfull
Enable Interrupts
Config Portb.0 = Output
Portb.0 = 1
Dim Beltimeist As Byte , Beltimesoll As Byte , Menutimeist As Byte , Menutimesoll As Byte
Dim Temp As Byte , X As Word , Y As Word
Dim Menu As Integer
Dim Nacht As Bit
Dim Menul As Integer
Start Adc
Print "Alles wird übertragen"
Showpic 0 , 0 , Mainmenu
Menu = 0
Menul = 0
Beltimesoll = 15
Beltimeist = 15
Menutimesoll = 15
Menutimeist = 15
Do
If X > 20 And Y > 20 Then : Beltimeist = Beltimesoll : Menutimeist = Menutimesoll : End If
If Beltimeist <= 0 Then : Portb.0 = 0 : End If
If Menutimeist <= 0 Then : Menu = 0 : Showpic 0 , 0 , Mainmenu : End If
If Menu <> 0 Then : Start Timer1 : Else : Stop Timer1 : End If
Select Case Menu
Case 0 : Gosub Menu0
Case 1 : Gosub Menu1
Case 2 : Select Case Menul
Case 0 : Gosub Menul0
Case 1 : Gosub Menul1
Case 2 : Gosub Menul2
Case 3 : Gosub Menul3
Case 4 : Gosub Menul4
End Select
Case 3 : Gosub Menu3
Case 4 : Gosub Menu4
Case 5 : Gosub Menu5
Case 6 : Gosub Menu6
Case 7 : Gosub Menu7
Case 8 : Gosub Menu8
Case 9 : Gosub Menu9
Case 10 : Gosub Menu10
Case 11 : Gosub Menu11
Case 12 : Gosub Menu12
End Select
Waitms 200
Loop
End
.
.
.
Cntfull:
Beltimeist = Beltimeist - 1
Menutimeist = Menutimeist - 1
Return
Mainmenu:
$bgf "mainmenu.bgf"
Musik:
$bgf "musik.bgf"
Musikplayer:
$bgf "Musik_player.bgf"
Musiknoconn:
$bgf "Musik_noconnection.bgf"
Steuerung:
$bgf "steuerung.bgf"
Steuerungl1:
$bgf "Steuerung_Lampe1.bgf"
Steuerungl2:
$bgf "Steuerung_Lampe2.bgf"
Steuerungl3:
$bgf "Steuerung_Lampe3.bgf"
Steuerungl4:
$bgf "Steuerung_Lampe4.bgf"
Pccontrol:
$bgf "PCControl.bgf"
Einstellungen:
$bgf "Einstellungen.bgf"
Einstellungen_beltime:
$bgf "Einstellungen_Beltime.bgf"
Einstellungen_kontrast:
$bgf "Einstellungen_Kontrast.bgf"
Einstellungen_menutime:
$bgf "Einstellungen_Menutime.bgf"
Einstellungen_nachts_aus:
$bgf "Einstellungen_Nachts_Aus.bgf"
Einstellungen_nachts_ein:
$bgf "Einstellungen_Nachts_Ein.bgf"
Einstellungen_nachts_eingabe_bis:
$bgf "Einstellungen_Nachts_Eingabe_Bis.bgf"
Einstellungen_nachts_eingabe_von:
$bgf "Einstellungen_Nachts_Eingabe_Von.bgf"
mfg mel
EDIT: x und y sind die übertragenen Koordinaten vom Touchcontroller