letzte Woche lief mit der 1.11.9.3 noch alles 1a, auf einen Schlag kam immer die Fehlermeldung Out of SRAM space [Error 22 Line 11]
Ich habe jetzt schon zig Einstellungen getestet nichts geht.

In der 1.11.9.1 gehts momemtan noch.

hier mal der Code:

Code:
$prog &HFC , &HFF , &HD9 , &H00


$regfile = "attiny2313.dat"
$crystal = 4000000

Open "COMD.0:9600,8,n,2" For Input As #1                    ' Software UART konfigurieren


' Variablendeklaration
Dim Zeiger As Byte At &HA0
Zeiger = 1
Dim Flag As Byte At &HA1
Dim Adresse As Eram Byte
Dim Hot As Eram Byte                                        'Scharfschalt-Status im eeProm
Dim Adresse_temp As Byte At &HA2
Dim Tempword As Word At &HA3
Adresse_temp = Adresse
Dim Tempbyte As Byte At &HA5
Dim Tempbyte2 As Byte At &HA6
Dim Init As Byte At &HA7

Dim Protokoll(10) As Byte

'Ausgangsports konfigurieren
Ddrd = &B10111110
Ddrb = &B11111111                                           'Beispiel:  DDRx = &B0000100      'Pin Px2 Ausgang, Rest Eingang

Portb = 0
Portd = &B01000000

' 2-mal Timer konfigurieren
Config Timer0 = Timer , Prescale = 1024
On Timer0 Timer_irq                                         'Nosave
Stop Timer0

Config Timer1 = Timer , Prescale = 64
On Timer1 Timer_irq2                                        'Nosave
Disable Timer1
Stop Timer1
Timer1 = 0

Enable Timer0
Enable Interrupts


 Waitms 100                                                 ' Initialisieren bereit
 If Pind.6 = 0 Then
 Waitms 100
 If Pind.6 = 0 Then
 Portd.5 = 0
 Init = 1
 Hot = 0
 Waitms 100
 Timer1 = 20500
 Enable Timer1
 Start Timer1
 End If
 End If


 If Hot = 1 And Init = 0 Then                               'Scharfschalt-Status setzen
 Portd.5 = 1
 End If






Do                                                          ' Mainloop, hier dreht der Controller seine Runden

  Tempbyte = Waitkey(#1)                                    ' ware auf Zeichenempfang über Soft-UART
  Gosub Zeichenempfang                                      ' gehe zu Zeichenverarbeitung

  If Flag = 1 Then                                          ' Protokoll ist komplett ?
     Gosub Proto
     Flag = 0                                               ' Protokollflag wieder rücksetzen
     Zeiger = 1
  Elseif Flag = 2 Then                                      ' Protokoll ist komplett ?
     Gosub Scharfschalten                                   ' Protokoll abarbeiten
     Flag = 0                                               ' Protokollflag wieder rücksetzen
     Zeiger = 1                                             ' zeiger für Speicherung des nächsten eingehenden Zeichens rücksetzen
  End If

Loop



Zeichenempfang:

   'Tempbyte = Udr
   Protokoll(zeiger) = Tempbyte                             ' empfangenes Byte in Protokoll ablegen

   If Tempbyte = 0 Then                                     ' Protokollende erreicht
      Zeiger = 1                                            ' Protokollzeiger zurücksetzen
   End If

   If Protokoll(1) = 27 Then                                ' Wenn Protokollbeginn erkannt
        If Tempbyte = 0 Then                                ' und aktuell empfangenes Byte ist Protokollende
            Flag = 1                                        ' Protokollabarbeitung veranlassen
        End If

        Incr Zeiger                                         ' sonst nächste Speicherstelle für Protokoll auswählen

   Elseif Protokoll(1) = 35 Then                            ' Wenn Protokollbeginn erkannt
        If Tempbyte = 0 Then                                ' und aktuell empfangenes Byte ist Protokollende
            Flag = 2                                        ' Protokollabarbeitung veranlassen
        End If

        Incr Zeiger                                         ' sonst nächste Speicherstelle für Protokoll auswählen

   Else
        Zeiger = 1                                          ' Protokoll wieder von vorne beginnen
        Timer0 = 0                                          ' Timer 0 resetten
        Start Timer0                                        ' timer 0 starten
        Enable Timer0                                       ' und Interrupt aktivieren
   End If

Return
End



Timer_irq:
   Stop Timer0
   Disable Timer0
   Zeiger = 1
Return
End



Timer_irq2:
If Init = 1 Then
   Timer1 = 60500
   Toggle Portb.0
Else
   Portb = 0                                                ' Ports rücksetzen
   Timer1 = 0                                               ' Timer zurücksetzen
   Disable Timer1                                           ' Timer interrupt deaktivieren
   Stop Timer1                                              ' Timer stoppen
   Protokoll(1) = 0
   Protokoll(2) = 0
   Protokoll(3) = 0
   Protokoll(4) = 0
End If

Return
End



Proto:

            If Protokoll(2) = Adresse_temp Then             ' prüfen ob diese Platine angesprochen ist
                Flag = 3
            End If

            If Protokoll(2) = 255 Then                      ' prüfen ob alle angesprochen sind
                Flag = 3
            End If

        If Flag = 3 Then                                    ' Ausführung wenn Adresse stimmt oder alle angesprochen sind
                Flag = Protokoll(3)

            If Flag = 64 And Init = 0 Then                  ' Programm verzweigen nach Steuerbyte des Protokolls
                Portb = Protokoll(4)                        ' Port setzen

                Timer1 = 53036
                Enable Timer1
                Start Timer1
            End If


' INITIALISIEREN

            If Flag = 72 And Init = 1 Then
                Init = 0
                Flag = Protokoll(4)
                Adresse = Flag                              ' Adresse in EEPROM speichern, wird bei nächstem Reset verwendet
                Adresse_temp = Protokoll(4)                 ' neue Adresse ab sofort verwenden, auch ohne Reset
                Portb = 0
            End If

        End If


      Protokoll(1) = 0                                      ' gespeichertes Protokoll löschen
      Protokoll(2) = 0
      Protokoll(3) = 0
      Protokoll(4) = 0



Return
End

Scharfschalten:                                             ' Programmteil scharf schalten

If Init = 0 Then

        Portb = 0

        If Protokoll(2) = 255 Then
                Flag = 4

            If Flag = 4 Then
                 Flag = Protokoll(3)
            End If

            If Flag = 64 Then
                 Flag = Protokoll(4)
            End If

            If Flag = 0 Then
                 Portd.5 = 0                                'Module unscharf
                 Hot = 0                                    'Status ins eeProm
            End If

            If Flag = 1 Then
                 Portd.5 = 1                                'Module scharf
                 Hot = 1                                    'Status ins eeProm
            End If

         End If



             Protokoll(1) = 0                               ' gespeichertes Protokoll löschen
             Protokoll(2) = 0
             Protokoll(3) = 0
             Protokoll(4) = 0


             Timer1 = 53036
             Enable Timer1
             Start Timer1

End If

Return
End
Ich danke euch schon mal im vorraus, für die Hilfe