Kann es sein, dass der "Input" Befehl den µC ausbremst? oder wartet der bis eine Eingabe kommt?

Code:
'Konfiguration µC:

$regfile = "m8def.dat"                                      'AT-Mega8
$crystal = 8000000                                          '18432000

$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 8                                                ' default use 10 for the SW stack
$baud = 38400                                               '9600                                           

'_______________________________________________________________________________
Ddrb = &B11111111                                           'PortB = Ausgang (PB0=A usw.)
Ddrc = &B111111                                             'PortC = Ausgang
Ddrd = &B11110011                                           'PortD = Ausgang (PD0=Anzeige1, PD4=A2, PD5=A3, PD6=A4) PD2/3 =INT

'Config Int0 = Rising                                        'Falling                                       'wechsel von High auf Low
'Config Int1 = Rising                                        'Falling                                       'wechsel von High auf Low
'Enable Int0
'Enable Int1
'On Int0 Irq0
'On Int1 Irq1


'_______________________________________________________________________________
Dim Anzeige_akt As Word                                     'Aktuelle Zeitmessung
Dim Anzeige_str As String * 5                               'Zeit als String
Dim Anzeige_str_len As Byte                                 'String-Länge
Dim Anzeige_ziffer As String * 1                            'Aktuelle Ziffer
Dim Anzeige_pos As Byte                                     'Aktuelle Ziffer im String
Dim I As Byte                                               'Allgem. Laufzahl

Dim Test As Word

Dim A As Integer
Dim B As Integer

Dim Zeit As Word
Dim Messzeit As Word                                        'in Millisekunden
Dim Zeitfake As Word                                        'damit nicht mit dem Wert 0 gerechnet wird 



'_______________________________________________________________________________
'TIMER0 Konfiguration für Ziffernwechsel:
Config Timer0 = Timer , Prescale = 1024                     '64                       '64 -> Timer0 für Anzeige
Const T0_preload = 1                                        '150                                      '150 = Startwert Timer0 für 1,2kHz = 300Hz/Anzeige
Tcnt0 = T0_preload

On Timer0 Timer_irq_led                                     'Timer0-Overflow-Interrupt

Enable Timer0                                               'Timer0 starten
Enable Interrupts


'_______________________________________________________________________________
Zeit = 0                                                    'gemessene Zeit auf 0 setzen
I = 1
B = 0




Do
'Anzeige:
 Anzeige_str = Str(anzeige_akt)                             ' Wert in String umwandeln
      Anzeige_str_len = Len(anzeige_str)                    ' Stringlänge messen

      Anzeige_pos = Anzeige_str_len - I
      Anzeige_pos = Anzeige_pos + 1

      Anzeige_ziffer = Mid(anzeige_str , Anzeige_pos , 1)

      Portc = 0                                             'Ghosting vermeiden (damit nich auf allen Anzeigen die selbe Zahl steht!!!)


      Select Case Anzeige_ziffer                            'Ziffer auf Port

           Case "0" :
           Portd.2 = 1
           Portd.3 = 1
           Portd.4 = 1
           Portb.6 = 1
           Portb.7 = 1
           Portd.5 = 1
           Portd.6 = 0
           Portd.7 = 0                                      'NULL

           Case "1" :
           Portd.2 = 0
           Portd.3 = 1
           Portd.4 = 1
           Portb.6 = 0
           Portb.7 = 0
           Portd.5 = 0
           Portd.6 = 0
           Portd.7 = 0                                      'EINS

           Case "2" :
           Portd.2 = 1
           Portd.3 = 1
           Portd.4 = 0
           Portb.6 = 1
           Portb.7 = 1
           Portd.5 = 0
           Portd.6 = 1
           Portd.7 = 0                                      'ZWEI

           Case "3" :
           Portd.2 = 1
           Portd.3 = 1
           Portd.4 = 1
           Portb.6 = 1
           Portb.7 = 0
           Portd.5 = 0
           Portd.6 = 1
           Portd.7 = 0                                      'DREI

           Case "4" :
           Portd.2 = 0
           Portd.3 = 1
           Portd.4 = 1
           Portb.6 = 0
           Portb.7 = 0
           Portd.5 = 1
           Portd.6 = 1
           Portd.7 = 0                                      'VIER

           Case "5" :
           Portd.2 = 1
           Portd.3 = 0
           Portd.4 = 1
           Portb.6 = 1
           Portb.7 = 0
           Portd.5 = 1
           Portd.6 = 1
           Portd.7 = 0                                      'FÜNF

           Case "6" :
           Portd.2 = 1
           Portd.3 = 0
           Portd.4 = 1
           Portb.6 = 1
           Portb.7 = 1
           Portd.5 = 1
           Portd.6 = 1
           Portd.7 = 0                                      'SECHS

           Case "7" :
           Portd.2 = 1
           Portd.3 = 1
           Portd.4 = 1
           Portb.6 = 0
           Portb.7 = 0
           Portd.5 = 0
           Portd.6 = 0
           Portd.7 = 0                                      'SIEBEN

           Case "8" :
           Portd.2 = 1
           Portd.3 = 1
           Portd.4 = 1
           Portb.6 = 1
           Portb.7 = 1
           Portd.5 = 1
           Portd.6 = 1
           Portd.7 = 0                                      'ACHT

           Case "9" :
           Portd.2 = 1
           Portd.3 = 1
           Portd.4 = 1
           Portb.6 = 1
           Portb.7 = 0
           Portd.5 = 1
           Portd.6 = 1
           Portd.7 = 0                                      'NEUN

           Case Else :
           Portd.2 = 0
           Portd.3 = 0
           Portd.4 = 0
           Portb.6 = 0
           Portb.7 = 0
           Portd.5 = 0
           Portd.6 = 0
           Portd.7 = 0

      End Select

     'Segment wählen
      If I = 1 Then Portc.1 = 1                             'EINER
      'If I = 2 Then Portc.2 = 1                            'ZEHNER
      If I = 2 Then
      Portc.2 = 1                                           'ZEHNER
      Portd.7 = 1                                           'EINE Kommastelle
       End If
      If I = 3 Then Portc.3 = 1                             'HUNDERTER
      If I = 4 Then Portc.4 = 1                             'TAUSENDER

      I = I + 1                                             'Nächste Ziffer
      If I >= 5 Then I = 1                                  'max Anzeigen angeben! damit Anzeige möglichst hell ist(bei 5Anzeigen muss bei der 6. wieder bei 1 Angefangen werden)


'ENDE ANZEIGE




Anzeige_akt = B       'Wert zum anzeigen



Loop





'_______________________________________________________________________________
Timer_irq_led:


      Tcnt0 = T0_preload                                    'Timer wieder laden

A = Udr                                                     'Byte aus UART auslesen
Input B Noecho                                              'über RS232 empfangen
Print "out " ; B


Return

'-------------------------------------------------------------------------------
'Anschlussbelegung am AT-MEGA8
'-------------------------------------------------------------------------------

'Segment A = PD2 (rote Ader)
'Segment B = PD3
'Segment C = PD4
'Segment D = PB6
'Segment E = PB7
'Segment F = PD5
'Segment G = PD6
'Segment DP = PD7

'Zahl 1 = PC1 ganz rechts EINER (rote Ader)
'Zahl 2 = PC2 2.Stelle von Rechts ZEHNER
'Zahl 3 = PC3 3.Stelle von Rechts Hunderter
'Zahl 4 = PC4 4.Stelle von Rechts Tausender