@Gento:
das lässt sich nicht kompilieren, weil er das End If nicht findet.

@for_ro:
- das +1 ist bei mir kein Problem - wie hättest du es geschrieben?
- die 5 Sekundenzeit ist so gewollt - zum testen - wird später wieder auf 60 geändert

Tobias


Code:
'Konfiguration µC:

$regfile = "m8def.dat"                                      'AT-Mega8
$crystal = 3686400                                          'Quarz: 3.6864 MHz
$baud = 9600                                                'Baudrate der UART: 9600 Baud


'Analogmessung
Config Adc = Single , Prescaler = Auto , Reference = Avcc

'TIMER
On Timer1 Ontimer1overflow                                  'Timer1-Interruptroutine deklarieren
Config Timer1 = Timer , Prescale = 1024                     '3686400Hz/1024=3600Hz
Enable Timer1
Timer1 = 61935                                              'Sofort Timer1-Überlauf (Bei 16 Bit: 65535+1=0)
Enable Interrupts


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

Ddrb = &B111111                                             '1 Ausgang, 0 Eingang = Pin PB5-0 als Ausgang
Ddrc = &B0000000                                            '1 Ausgang, 0 Eingang = Pin PC6-0 als Eingang
Ddrd = &B00000000                                           '1 Ausgang, 0 Eingang = Pin PD7-0 als Eingang





'-------------------------------------------------------------------------------
' Variablen
'-------------------------------------------------------------------------------
Dim Analog_in0 As Word                                      '=0-1023 vom Analogeingang



'Timer
Dim Stunden As Byte
Dim Minuten As Byte
Dim Sekunden As Byte

'Speicherplätze
Dim Zähler As Word                                          'zum Werte hochzählen
Dim Merker As Bit                                           'Werte speichern: damit nur um 1 hochgezählt wird
Dim Wert(200) As Word                                       'speichern des eigendlichen Wertes (470Werte?)



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

Zähler = 1
Merker = 0                                                  'Werte speichern: damit nur um 1 hochgezählt wird

Do

Start Adc                                                   'Starte analog Messung

'Analogeingänge Auslesen:
Analog_in0 = Getadc(0)                                      'Wert aus Analogeingang laden

'-------------------------------------------------------------------------------
'Merker zurücksetzen
If Sekunden = 1 Then
Merker = 0
End If

'-------------------------------------------------------------------------------
'Werte Speichern:
 If Sekunden = 0 And Merker = 0 Then
 Toggle Portb.2                                             'Led umschalten zur kontrolle
 Wert(zähler) = Analog_in0
 Incr Zähler
 Merker = 1
 Print "Zähler: " ; Zähler
 End If

 '-------------------------------------------------------------------------------
'Werte über RS232 Senden:
 If Pinc.3 = 0 Then
 Portb.3 = 1                                                'Led umschalten zur kontrolle
 'Zähler = 1                                                 'Zähler zurücksetzen
 For Zähler = 1 To 10 Step + 1                              'Zähler hochzählen
 Print "Wert " ; Zähler ; ": " ; Wert(zähler)               'und Wert senden
 Waitms 10
 Next
 Else
 Portb.3 = 0                                                'Led umschalten zur kontrolle
 End If


'-------------------------------------------------------------------------------

'-------------------------------------------------------------------------------
'UHR einstellen:

 'Minuten +
 'If Pind.3 = 1 And Minuten <= 59 Then
 'Minuten = Minuten + 1
 'Waitms 300
 'End If

 'Stunden+
 'If Pinc.2 = 1 And Stunden <= 23 Then
 'Stunden = Stunden + 1
 'Waitms 300
 'End If


Loop


'-------------------------------------------------------------------------------
'Sprungmarken
'-------------------------------------------------------------------------------
Ontimer1overflow:                                           'Timer1-Interruptroutine
  'Nächster Überlauf soll in einer Sekunde sein:
  Timer1 = 61936                                            'Überlauf nach 65535, also: 65535+1-3600=61936

  Incr Sekunden

  If Sekunden >= 5 Then
    Sekunden = 0
    Incr Minuten
  End If

  If Minuten >= 60 Then
      Minuten = 0
      Incr Stunden
  End If

  If Stunden >= 24 Then
        Stunden = 0
  End If


  Print "Zeit: " ; Stunden ; " : " ; Minuten ; " : " ; Sekunden ; " Uhr"
  Print "Analog_in0: " ; Analog_in0                         'Analog Eingangswert senden
  Toggle Portb.0                                            'blink LED zum testen
Return