Es ist, als wen man etwas an das LCD sendet und sofort CLS hinteher schickt...

Ich habe zum testen den Wait 3 sekunden befehl reingechrieben und nun blitzt der Text nur noch ganz kurz auf...

Was ist denn daran falsch?!

Tobias

Code:
$regfile = "m8def.dat"                                      'AT-Mega8
$crystal = 8000000                                          'Quarz: 8 MHz   INTERN!!!
'$baud = 1200                                                'Baudrate der UART: 2400 Baud



'Konfiguration LCD
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.3 , Db6 = Portb.2 , Db7 = Portd.6 , E = Portd.7 , Rs = Portb.0
Cursor Off Noblink                                          ' Cursor aus


'Timer
'Config Portc = Input
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 64       'FÜR PWM!!!
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 64       'FÜR PWM!!!
Config Timer0 = Timer, Prescale = 1024
On Timer0 Timer0
Const Timervorgabe = 61
Enable Timer0
Enable Interrupts


'-------------------------------------------------------------------------------
'Ein- Ausgänge:

Ddrb = &B11111111                                           '1 Ausgang, 0 Eingang = Pin PB7-0 als Ausgang
Ddrc = &B0000011                                            '1 Ausgang, 0 Eingang = Pin PC6-2 als Eingang; 1-0 als Ausgang
Ddrd = &B11111011                                           '1 Ausgang, 0 Eingang = Pin PD7-0 als Ausgang; 0 als Eingang (Freigabe)
'Portc = &B11111111                                         'PC0...PC7 auf High setzen
Portb.1 = 0                                                 'damit der Motor nicht kurzzeitig anläuft



'-------------------------------------------------------------------------------
' Variablen
'-------------------------------------------------------------------------------
Dim Anzeige_z As Byte                                       'Zähler Anzeige
Dim Anzeige_auto As Bit
Dim Anzeige_hand As Bit
Dim Anzeige_e As Bit

Dim Analog_in1 As Word                                      '=0-1023 vom Analogeingang
Dim S1 As Bit                                               'Schalter 1
Dim S2 As Bit                                               'Schalter 2
Dim S3 As Bit                                               'Schalter 3
Dim S3_m As Bit                                             'Schalter 3 MERKER

Dim Pro1 As Integer
Dim Pro2 As Single
Dim Proz As Integer

Dim Pwm1 As Single
Dim Pwm As Integer

Dim Taste_s1 As Byte

'Anzeige



'-------------------------------------------------------------------------------
'Programm:
'-------------------------------------------------------------------------------

'----------
'ANNIMATION
'----------

'----------------------------
Start Adc
Cls   'LCD löschen

Anzeige_auto = 1
Anzeige_hand = 0
Anzeige_e = 0



Do
Portb.5 = 1                                                 'LCD Beleuchtung an

If Pinc.3 = 0 Then                                          'Schalter 1
S1 = 1
Else
S1 = 0
End If

If Pinc.4 = 0 Then                                          'Schalter 2
S2 = 1
Else
S2 = 0
End If

If Pinc.5 = 0 Then                                          'Schalter 3
S3 = 1
Else
S3 = 0
End If


Wait 3


'Analogeingänge auslesen:
'Analog_in1 = Getadc(1)                                      'Wert aus Analogeingang laden
'
'
''Umrechnung Eingang -> %
' Pro1 = Analog_in1 - 16                                     'Prozent1Wert  analog 16-90 also -16 = 0-74
' Pro2 = Pro1 * 1.351                                        'Rechnen: 100% / max(74) = 1.351
' Proz = Round(pro2)
'
''Umrechnung % -> PWM
' Pwm1 = Proz * 2.55
' Pwm = Round(pwm1)
'
''Motorsteuerung
'If Pind.2 = 1 Then
'Compare1a = Pwm
'Else
'Compare1a = 0
'End If


'---ANZEIGE AUTO WÄHLEN ---------------------------------------
If Anzeige_hand = 1 And S1 = 1 And S2 = 0 And S3 = 0 Then

   'Anzeige_auto = 1
   'Anzeige_hand = 0
   'Anzeige_e = 0

End If


'---ANZEIGE HAND WÄHLEN---------------------------------------
If Anzeige_auto = 1 And S3 = 1 And S2 = 0 And S1 = 0 Then

   Anzeige_auto = 0
   Anzeige_hand = 1
   Anzeige_e = 0

End If


'---ANZEIGE "E" WÄHLEN---------------------------------------
If Taste_s1 => 120 And S2 = 0 And S3 = 0 Then               'ca. 3 Sekunden
   Taste_s1 = 0

   'Anzeige_auto = 0
   'Anzeige_hand = 0
   'Anzeige_e = 1

End If

 Wait 3

'-------------------------------------------------------------
If Anzeige_z => 40 Then                                     'Wenn zähler voll, dann zur ausgewählten Anzeige gehen!
 Anzeige_z = 0

 If Anzeige_auto = 1 Then
 Goto Anzeige_auto
 End If

 If Anzeige_hand = 1 Then
 Goto Anzeige_hand
 End If

 If Anzeige_e = 1 Then
 Goto Anzeige_e
 End If

End If

Wait 3
'===RS232===



'Print "ANZEIGE_Z: " ; Anzeige_z ,                           'Zähler Anzeige
'Print "Anzeige_Auto: " ; Anzeige_auto ,
'Print "Anzeige_Hand: " ; Anzeige_hand ,
'Print "Anzeige_E: " ; Anzeige_e ,

'print "Analog in: " ; Analog_in1 ,                         '=0-1023 vom Analogeingang
'Print "S1: " ; S1 ,                                         'Schalter 1
'Print "S2: " ; S2 ,                                         'Schalter 2
'Print "S3: " ; S3 ,                                         'Schalter 3
'Print "S3_m: "; S3_m ,                                      'Schalter 3 MERKER

'Print "Pro1: "; Pro1 ,
'Print  "Pro2: " ; Pro2 ,
'Print "Proz: " ; Proz ,

'Print "PWM1: "; Pwm1 ,
'Print "PWM: "; Pwm ,

'Print "Taste_s1: " ; Taste_s1 ,

Loop



'-------------------------------------------------------------------------------
'Sprungmarken
'-------------------------------------------------------------------------------
Timer0:                                                     'Timer1-Interruptroutine  (40 x pro Sekunde)
  Timer0 = Timervorgabe
  Incr Anzeige_z

  If S1 = 1 Then                                            'soll nur hochgezählt werden, wenn Taste links gedrückt
  Incr Taste_s1
  Else
  S1 = 0
  End If

Return



'------------------------------------------
Anzeige_auto:
Cls
Locate 1 , 1
Lcd "Drehzahl:"
Locate 1 , 11
Lcd Str(proz , "X") ; " %"

Locate 2 , 1
Lcd Str(s1 , "x")
Locate 2 , 2
Lcd Str(s2 , "x")
Locate 2 , 3
Lcd Str(s3 , "x")


Locate 2 , 6
Lcd ">AUTO<"
Locate 2 , 12
Lcd "Hand"
Locate 2 , 16
Lcd Str(anzeige_z , "x")

Return

'------------------------------------------
Anzeige_hand:
Cls
Locate 1 , 1
Lcd "Drehzahl:"
Locate 1 , 11
Lcd Str(proz , "X") ; " %"

Locate 2 , 1
Lcd "back"
Locate 2 , 8
Lcd "-"
Locate 2 , 14
Lcd "+"

Return


'------------------------------------------
Anzeige_e:
Cls
Locate 1 , 1
Lcd "Drehzahl:"
Locate 1 , 11
Lcd Str(proz , "X") ; " %"

Locate 2 , 1
Lcd Str(analog_in1 , "xxxx") ; "B"
Locate 2 , 7
Lcd Str(pwm , "x") ; "PWM"

Return