Zitat Zitat von Accenter
Wie schalte ich das einrücken ein? Habe nichts bewusst abgeschalten, sorry.
Kannst du unter Options -> Environment -> Editor und dort Autoindent einschalten.

Zitat Zitat von Accenter
Ich hab mit pushall und popall viel experimentiert. hatte das schon überall stehen. Daran lag es scheinbar nicht. irgendwo hab ich glesen, dass zwischen pushall und popall in keine Subroutinen gesprungen werden sollte, drum hab ich das dann so geändert. daran lags aber auch nicht.
Dann nimm doch mal die ganzen Auswertebefehle aus der Sub raus.

Code:
'------------------------------------------------------------------------------------------'
'--------------------------   Hauptschleife  ----------------------------------------------'
'------------------------------------------------------------------------------------------'


Do
'Touchdisplayauswertung usw.'
   Gosub Uhrzeitlesen
   Reset Watchdog
   If Received_flag = 1 Then
      Received_flag = 0
      Waitms 50
      Reset Watchdog
      Print #2 , "Eingabe durch Benutzer : " ; Empfang2 : Gosub Waitingtime
      Print #2 , "" : Gosub Waitingtime
      Gosub Loginauswertung
      Clear Serialin1
      Enable Int1
      Empfang2 = ""
   End If
Loop


'------------------------------------------------------------------------------------------'
'--------------------------   Sub Schleifen  ----------------------------------------------'
'------------------------------------------------------------------------------------------'


Serial1charmatch:                                     'Datenempfang Von UART2 Putty Terminal iPhone von Unterwegs'
   Pushall
   Disable Int1
   Reset Watchdog
   Input #2 , Empfang2 Noecho                                  'Wenn über den UART was empfangen wird springt das Programm hier her über den Interrupt'
   Received_flag = 1
   Popall
Return
Declare Sub Serial1charmatch()
kannst du dann übrigens weglassen und dann die Sub so schreiben wie oben.
Brauchst du eigentlich die ganzen Wartezeiten?
Warum benutzt du so viele :? Musst du Zeilen sparen?
Uhrzeitschreiben: 'Schreibe zeit und Datum in den DS1307'
_sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) : _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
I2cstart : I2cwbyte Ds1307w : I2cwbyte 0 : I2cwbyte _sec : I2cwbyte _min : I2cwbyte _hour : I2cstop : I2cstart : I2cwbyte Ds1307w
I2cwbyte 3 : I2cwbyte _weekday : I2cwbyte _day : I2cwbyte _month : I2cwbyte _year : I2cstop
_sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) : _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
Return
ich finde dies viel leichter zu lesen
Code:
Uhrzeitschreiben:                                           'Schreibe zeit und Datum in den DS1307'
   _sec = Makebcd(_sec)
   _min = Makebcd(_min)
   _hour = Makebcd(_hour)
   _day = Makebcd(_day)
   _month = Makebcd(_month)
   _year = Makebcd(_year)

   I2cstart
   I2cwbyte Ds1307w
   I2cwbyte 0
   I2cwbyte _sec
   I2cwbyte _min
   I2cwbyte _hour
   I2cstop
   I2cstart
   I2cwbyte Ds1307w
   I2cwbyte 3
   I2cwbyte _weekday
   I2cwbyte _day
   I2cwbyte _month
   I2cwbyte _year
   I2cstop

   _sec = Makedec(_sec)
   _min = Makedec(_min)
   _hour = Makedec(_hour)
   _day = Makedec(_day)
   _month = Makedec(_month)
   _year = Makedec(_year)
Return
Zitat Zitat von Accenter
Wenn ich eine zu lange Zeichenkette schicke hab ich sofort eine Watchdogauslösung. Sende ich nichts kommt es unvorhersehbar in unterschiedlichen zeitabständen zu Abstürzen.
Ein Watchdog ist ja kein Absturz, sondern eine vorgegebene Aktion im Falle einer Zeitüberschreitung.
Dein Watchdog steht auf 2048. D.h. wenn 2000ms kein Reset Watchdog kommt, resettet der µC. Schau dir mal die Länge deiner Auswertung, speziell die Lofile Routine. Die braucht doch bestimmt länger als 2s zur Ausführung.
Wo sind eigentlich die ganzen Dims und die fehlenden Deklarationen wie Spannungsmessung2?

Zitat Zitat von Richard
Pop und push gehören immer als erster und letzter Befehl in einen
IRQ und auch nur in einer IRQ. Basic verwendet selber etliche
Register für seine Befehle man sollte daran denken...
Serial1CharMatch ist keine IRQ, aber er hat schon recht, so steht es in der Hilfe zu Config Serialin.