...ich habe den C.Code mal umgesetzt und habe das ganze an mein Oszi angeschlossen. (ein Pin direkt an den ext. Triggger und den anderen über den 2Bit-R2R an den 1. Kanal)

EDIT:
Aktualisierter Code-> Ich habe die Sub 'Zustand' entfernt und verwende jetzt einen 16Mhz Quarz.

Code:
'------------[Meta]-------------------------------------------------------------
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 32
$swstack = 10
$framesize = 40

'------------[Lib für KS108-gLCD]-----------------------------------------------
$lib "glcdKS108.lbx"

'------------[GLCD Config]------------------------------------------------------
Config Graphlcd = 128 * 64sed , Dataport = Portc , Controlport = Porta , Ce = 1 , Ce2 = 2 , Cd = 3 , Rd = 4 , Reset = 0 , Enable = 5
Cls
Setfont Font6x8                                             ' Forn laden


'------------[Const & Variabeln definieren]-------------------------------------
Const Max_digit = 6                                         ' Sechs Zeichen müssen dargestellt werden
Const Slots = Max_digit * 3 + 4                             ' Anzahl der Zeitschlitze -> 2 für Header, 3 pro Zeichen, 2 für Trailer

Dim Ss As Byte                                              ' Sekunde
Dim Mn As Byte                                              ' Minute
Dim Hh As Byte                                              ' Stunde

Dim Line_(slots) As Byte
Dim Didx As Byte                                            ' Zeitschlitz (timeslot) counter
Dim Fidx As Byte                                            ' Frame counter

Dim I As Byte

Dim Display_(max_digit) As Byte                             ' anzeigbare Zeichen

Dim S As Byte
Dim P As Byte

Dim Tmp As Byte                                             ' temp

'------------[Ports definieren]-------------------------------------------------
'------------[AVR-Atmega32-Pins]--------------------------------------------
 'PortA.0 =         | PortB.0 =            | PortC.0 =                | PortD.0 =
 'PortA.1 =         | PortB.1 =            | PortC.1 =                | PortD.1 =
 'PortA.2 =         | PortB.2 =            | PortC.2 =                | PortD.2 = DCF-77
 'PortA.3 =         | PortB.3 =            | PortC.3 =                | PortD.3 = Status-LED
 'PortA.4 =         | PortB.4 =            | PortC.4 =                | PortD.4 = R2R-Bit.2
 'PortA.5 =         | PortB.5 =            | PortC.5 =                | PortD.5 = R2R-Bit.1
 'PortA.6 =         | PortB.6 =            | PortC.6 =                | PortD.6 = Trigger
 'PortA.7 =         | PortB.7 =            |                          | PortD.7 =
'-------------------------------------------------------------------------------

'----[Trigger-Output]-----------------------------------------------------------
Config Pind.6 = Output
Trigger Alias Portd.6

'----[2Bit R2R DAU]-------------------------------------------------------------
Config Pind.5 = Output
Bit1 Alias Portd.5
'----[2Bit R2R DAU]-------------------------------------------------------------
Config Pind.4 = Output
Bit2 Alias Portd.4

'----[Status-LED]---------------------------------------------------------------
Config Pind.3 = Output
Led Alias Portd.3
Led = 1                                                     ' LED einschalten

'----[Taster_Stunde]------------------------------------------------------------
Config Pinb.0 = Input
Taster_hr Alias Pinb.0
Portb.0 = 1                                                 ' Pullup aktivieren
'----[Taster_Minute]------------------------------------------------------------
Config Pinb.1 = Input
Taster_mn Alias Pinb.1
Portb.1 = 1                                                 ' Pullup aktivieren

'----[DCF_77-Input]-------------------------------------------------------------
Config Pinb.2 = Input
Dcf_77 Alias Pinb.2
Portb.2 = 0                                                 ' Pullup deaktivieren

'------------[Timer1 konfigurieren]---------------------------------------------
Config Timer1 = Timer , Prescale = 256
On Timer1 Ontimer
Const Pre = 43200
Load Timer1 , Pre


'------------[Interrupts aktivieren]--------------------------------------------
Enable Interrupts                                           ' Interrupts aktivieren

'------------[Programm]---------------------------------------------------------
'------------[Start]------------------------------------------------------------
Cls

' ------[TEST]------------------------------------------------------------------
' Zustand 90 : Lcdat 1 , 0 , "Zero  " : Wait 1               ' Zero
' Zustand 76 : Lcdat 1 , 0 , "Lower " : Wait 1               ' Lower
' Zustand 77 : Lcdat 1 , 0 , "Middle" : Wait 1               ' Middle
' Zustand 72 : Lcdat 1 , 0 , "High  " : Wait 1               ' High
' Lcdat 1 , 0 , "run.."


Enable Timer1

Do
'  Lcdat 1 , 0 , Hh , ":" , Mn . ":" , Ss
' ----------[Buffer leeren]-----------------------------------------------------
    For I = 1 To Slots : Line_(i) = 0 : Next
    For I = 1 To Max_digit : Display_(i) = 0 : Next

' ----------[Prepare display buffer]--------------------------------------------
    Display_(6) = Ss Mod 10                                 ' Sekunden
    Display_(5) = Ss / 10

    Display_(4) = Mn Mod 10                                 ' Minuten
    Display_(3) = Mn / 10

    Display_(2) = Hh Mod 10                                 ' Stunden
    If Hh > 9 Then Display_(1) = Hh / 10 Else Display_(1) = 10       ' blank first, digit if Zero

' ----------[Tasterabfrage zum einstellen der Uhrzeit]--------------------------
    Debounce Taster_mn , 0 , Incr_mn , Sub                  ' Minuten einstellen
    Debounce Taster_hr , 0 , Incr_hr , Sub                  ' Stunden einstellen

    Mn = Mn Mod 60                                          ' prevent minute overflow
    Hh = Hh Mod 24                                          ' prevent hours overflow

' ----------[Prepare time slot flags]-------------------------------------------

    For I = 1 To Max_digit                                  ' Für jedes Zeichen

        S = Lookup(display_(i) , Septseg)                   ' Get 7 segment encoding

        Tmp = Lookup(i , Sidx)                              ' get pointer to time slot, left part of the digit
        P = Line_(tmp)

        '=======================================================================

        P.0 = S.0                                           ' Bit.0 | Segment A
        P.1 = S.6                                           ' Bit.6 | Segment G
        P.2 = S.3                                           ' Bit.3 | Segment D

        P.6 = S.4                                           ' Bit.4 | Segment E
        P.7 = S.5                                           ' Bit.5 | Segment F

        '=======================================================================

        Incr P                                              ' Next slot ,center part of the digit

        '=======================================================================

        P.0 = S.0                                           ' Bit.0 | Segment A (fortsetzung)
        P.1 = S.6                                           ' Bit.6 | Segment G (fortsetzung)
        P.2 = S.3                                           ' Bit.3 | Segment D (fortsetzung)

        Incr P                                              ' Next slot, right part of the digit

        P.6 = S.2                                           ' Bit.6 | Segment B
        P.7 = S.1                                           ' Bit.1 | Segment C
        '=======================================================================

    Next I

' ------[Teil des ISR Interruptsprung aus dem C-Code]---------------------------

         '----------------------------------------------------------------------
             If Line_(didx).6 = 1 And Line_(didx).7 = 1 Then       ' if full vertical bar
                     Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1       'Low,High,Low,High -> 16 mal durchlaufen damit die Seitenleiste breiter wird…
                     Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 1
              Elseif Line_(didx).6 = 1 Then                 ' if lower vertical bar
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1       'Mid,Low,Mid,Low -> 16 mal durchlaufen damit die Seitenleiste breiter wird…
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 0 : Bit2 = 1
              Elseif Line_(didx).7 = 1 Then                 ' if upper vertical bar
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1
                     Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1 : Bit1 = 1 : Bit2 = 0 : Bit1 = 1 : Bit2 = 1
             End If

             If Didx = 7 Then                               ' Stunden : Minuten separator
                       Bit1 = 0 : Bit2 = 1 : Waitus 10      ' Low
                       Bit1 = 1 : Bit2 = 0 : Waitus 10      ' Mid
             Elseif Didx = 14 Then                          ' Minuten : Sekunden separator
                    If Timer1 < 22336 Then                  ' Blink ~0.5 Hz -> (65536- const pre)
                       Bit1 = 0 : Bit2 = 1 : Waitus 10      ' Low
                       Bit1 = 1 : Bit2 = 0 : Waitus 10      ' Mid
                    End If
             End If

             Select Case Fidx                               ' Je nach Frameindex
                    Case 0 : If Line_(didx).0 = 1 Then      ' obere Linie
                               Bit1 = 1 : Bit2 = 1          ' High
                             Else
                               Bit1 = 0 : Bit2 = 0          ' Zero
                             End If
                    Case 1 : If Line_(didx).1 = 1 Then      ' mittlere Linie
                               Bit1 = 1 : Bit2 = 0          ' Mid
                             Else
                               Bit1 = 0 : Bit2 = 0          ' Zero
                             End If
                    Case 2 : If Line_(didx).2 = 1 Then      ' untere Linie
                               Bit1 = 0 : Bit2 = 1          ' Low
                             Else
                               Bit1 = 0 : Bit2 = 0          ' Zero
                             End If
             End Select

             Incr Didx                                      ' nächster Slot
             If Didx = Slots Then                           ' letzter Slot ?
                Didx = 0                                    ' lösche Slot
                Trigger = 1                                 ' Oszi triggern (EIN)
                Incr Fidx                                   ' nächster Frame
                If Fidx = 3 Then                            ' letzter Frame ?
                   Fidx = 0                                 ' lösche Frame
                   Trigger = 0                              ' Oszi triggern (AUS)
                End If
             End If
      ' ---------------------------------------------------------------------
Loop


'======[Adjust-Time Labels]=====================================================
Incr_mn:
  Ss = 0
  Incr Mn
Return

Incr_hr:
  Ss = 0
  Incr Hh
Return



'------------[Timer Interrupt Sprungmarke]--------------------------------------
Ontimer:
         '----------------------------------------------------------------------
             Toggle Led

             Incr Ss                                        ' nächste Sekunde
             If Ss = 60 Then                                ' letzte Sekunde in der Minute ?
                Ss = 0                                      ' lösche Sekunde
                Incr Mn                                     ' nächste Minute

                If Mn = 60 Then                             ' letzte Minute in der Stunde ?
                   Mn = 0                                   ' lösche Minute
                   Incr Hh                                  ' nächste Stunde

                   If Hh = 24 Then                          ' letzte Stunde am Tag?
                      Hh = 0                                ' lösche Stunde
                   End If
                End If
             End If

         '----------------------------------------------------------------------
         Load Timer1 , Pre
Return


'---------[Ende]----------------------------------------------------------------
End


'----[Segment defenitionen]-----------------------------------------------------
Septseg:
Data &H3F , &H06 , &H5B , &H4F , &H66 , &H6D , &H7D , &H07 , &H7F , &H6F , &H00
'        0      1        2       3       4       5       6       7       8       9      -
'BiN: 0111111,0000110,1011011,1001111,1100110,1101101,1111101,0000111,1111111,1101111,0000000
'     gfedcba,gfedcba,gfedcba,gfedcba,gfedcba,gfedcba,gfedcba,gfedcba,gfedcba,gfedcba,gfedcba

'----[Slot Index für Zeichen-Start]---------------------------------------------
Sidx:
Data 1 , 4 , 8 , 11 , 15 , 18

$include "font6x8.font"                                     ' Fontdatei einfügen
Ich bekomme bis jetzt nur zwei Punkte (einen auf Low und der andere auf Middle) und die Nullinie angezeig.

Den Part
Code:
                if(line[dIdx].F6 && line[dIdx].F7)              // if full vertical bar
                        {
                        LOW, HIGH, LOW, HIGH ;			16 mal durchlaufen damit die Seitenleiste breiter wird.
                        LOW, HIGH, LOW, HIGH ;
                        LOW, HIGH, LOW, HIGH ;
                        LOW, HIGH, LOW, HIGH ;
                        LOW, HIGH, LOW, HIGH ;
                        LOW, HIGH, LOW, HIGH ;
                        LOW, HIGH, LOW, HIGH ;
                        LOW, HIGH, LOW, HIGH ; }

                else if(line[dIdx].F6)                          // if lower vertical bar
                        {
                        MID, LOW, MID, LOW ;
                        MID, LOW, MID, LOW ;
                        MID, LOW, MID, LOW ;
                        MID, LOW, MID, LOW ;
                        MID, LOW, MID, LOW ;
                        MID, LOW, MID, LOW ;
                        MID, LOW, MID, LOW ;
                        MID, LOW, MID, LOW ; }

                else if(line[dIdx].F7)                          // if upper vertical bar
                        {
                        MID, HIGH, MID, HIGH ;
                        MID, HIGH, MID, HIGH ;
                        MID, HIGH, MID, HIGH ;
                        MID, HIGH, MID, HIGH ;
                        MID, HIGH, MID, HIGH ;
                        MID, HIGH, MID, HIGH ;
                        MID, HIGH, MID, HIGH ;
                        MID, HIGH, MID, HIGH ; }

                if(dIdx == 7)                                   // hour : minute separator
                        { LOW, Delay10us() ;
                          MID, Delay10us() ; }
                else if(dIdx == 14)                             // minute : second separator
                        {
                        if(scaler < MAX_SCALER / 2)             // blink 0.5 Hz
                                { LOW, Delay10us() ;
                                  MID, Delay10us() ; }
                        }
                        
                switch(fIdx)                                    // depending on frame index
                        { case 0:                                 // upper line
                                if(line[dIdx] & 1)
                                        ( HIGH ; )
                                else
                                        ( ZERO ; )
                                break ;

                          case 1:                                 // middle line
                                if(line[dIdx] & 2)
                                        ( MID ; )
                                else
                                        { ZERO ; )
                                break ;

                          case 2:                                 // lower line
                                if(line[dIdx] & 4)
                                        { LOW ; }
                                else
                                        { ZERO ; }
                                break ;
                        }


                dIdx++ ;                                          // next slot
                if (dIdx == SLOTS)                                // last slot ?
                        { dIdx = 0 ;                              // clear slot
                          TRIGGER = 1 ;                           // triggers the scope
                          fIdx++ ;                                // next frame
                          if(fIdx == 3)                           // last frame ?
                                { fIdx = 0 ; )                    // clear frame
                          TRIGGER = 0 ; )                         // end trigger
aus dem C.Code habe ich mit in die Hauptschleife einbezogen. Hier könnte der Fehler liegen.

Kann sich das mal jemand anschauen?

DANKE!

Gruß MaXX