Ok,
langam han ich für heut genug. Wieder nur Probleme:

1. Wenn ich F1 ein paar mal hintereinander betätige (nur im Basic-Editor),
passiert es zwischenzeitlich (1v5 mal) das er die routiene für F2 startet (nein! ich bin nicht zu dumm zum klicken!!!)

2. Wenn ich das Prog auf die Station lade, F1 drücke (für Shutdown) beendet sich das Prog (wie ja auch gewollt), nur das, wenn ich sie wieder anmache er immer wierder shutdown2 aufruft (also quasi "end")

hier main Code:
Code:
' --- Definitionen ---

' Die Digital-Ports für das öffnen der Tür
' und der Lüfterregelungund im Bad
define DP1        port[1]
define DP2        port[2]
define DP3        port[3]
define DP4        port[4]
' Die Relais
define K1         port[7]
define K2         port[8]
' Die Folien-Funktionstasten
define F1         port[9]
define F2         port[10]
' Die LED`S für die Zustandsanzeige und
' die Tastendruck-Bestätigung
define LED1       port[13]
define LED2       port[14]
define LED3       port[15]
define LED4       port[16]
' Die Analogports für die Überwachung
' der Tür und der Luftfeuchtigkeit im Bad
define AP1        ad[1]
define AP2        ad[2]
' Die Temperatursensor-Ports
define TS1        ad[5]
define TS2        ad[6]
' Zwei Variablen zur Speicherung der Temperatur
define temp        word[1]
define temp2       word[2]
' Variable für die Speicherung empfangener
' Daten und zum counten der Shutdown-Schleife
define Data        byte[5]
define ShutCnt     byte[6]
' Variablen zum counten der Temperaturschaltung
define v_IntCoolOn   bit[49]
define v_IntCoolOff  bit[50]
define v_ExHeatOn    bit[51]
define v_ExHeatOff   bit[52]
' symbolische Konstanten für die Schaltschwellwerte
' (zehnfache Temperaturwerte)
define IntCool     220  ' = 24.0 °C
define ExHeat      250  ' = 20.0 °C
define Dong        155  ' = 1,55  V

' --- das Programm ---

' Initialisierung
DP1          = 0
DP2          = 0
DP3          = 0
DP4          = 0
K1           = OFF
K2           = OFF
LED1         = OFF
LED2         = OFF
LED3         = OFF
LED4         = OFF
ShutCnt      = 0
v_IntCoolOn  = 0
v_IntCoolOff = 0
v_ExHeatOn   = 0
v_ExHeatOff  = 0

#Main
  ' AD-Wandlerwert in Temperatur umrechnen
  temp  = 5 * TS1 - 250 '(5 * T1 - 250) /10
  temp2 = 5 * TS2 - 250 '(5 * T2 - 250) /10
  ' Datenkontainer leeren
  Data = 0
  ' Abfragen
  if temp  =>  IntCool then gosub IntCoolOn Else gosub IntCoolOff
  if temp2 =<  ExHeat  then gosub ExHeatOn  Else gosub ExHeatOff
  if AP1   =>  Dong    then gosub Klingeln
  if       not F1       then gosub F1Push
  if       not F2       then gosub F2Push
goto Main

#IntCoolOn
  If  v_IntCoolOn = -1 then Return
  v_IntCoolOn = v_IntCoolOn -1
  v_IntCoolOff = 0
  Print "1"
  Pause 10
  K1   = ON
  LED3 = ON
return

#IntCoolOff
  If v_IntCoolOff = -1 then Return
  v_IntCoolOff = v_IntCoolOff -1
  v_IntCoolOn =  0
  Print "2"
  Pause 10
  K1   = OFF
  LED3 = OFF
return

#ExHeatOn
  If v_ExHeatOn = -1 then Return
  v_ExHeatOn = v_ExHeatOn - 1
  v_ExHeatOff = 0
  Print "3"
  K2   = ON
  LED4 = ON
return

#ExHeatOff
  If v_ExHeatOff = -1 then Return
  v_ExHeatOff = v_ExHeatOff - 1
  v_ExHeatOn = 0
  Print "4"
  K2 = OFF
  LED4 = OFF
return

#F1Push
  LED1 = ON
  Beep 568,5,0
  Wait F1
  Print "101"
  Pause 25
  LED1 = OFF
  if not RXD then Print "101" Else gosub RxData
gosub Shutdown1

#F2Push
  LED2 = ON
  Beep 568,5,0
  Wait F2
  Pause 10
  if v_IntCoolOn = -1 then Print "1" Else Print "2"
  gosub SendTemp1
  pause 10
  if v_ExHeatOn  = -1 then Print "3" Else Print "4"
  gosub SendTemp2
  LED2 = OFF
return

#Shutdown1
  Beep 480,15,10
  ShutCnt = ShutCnt + 1
  if ShutCnt = 4 then gosub Shutdown2
  if not RXD then Print "101"  Else gosub RxData
gosub Shutdown1

#Shutdown2
  Beep 568,10,2
  Beep 568,10,2
  Beep 568,10,2
  Beep 480,15,0
end


#RxData
  Input Data
  if Data =  101 then  gosub Shutdown2
  if Data =  112 then  gosub SendTemp1
  if Data =  123 then  gosub SendTemp2
  if Data =  202 then  gosub DoorOpen1
  if Data =  213 then  gosub DoorOpen2
  if Data =< 100 then  goto Main
  Data = 0
return


#SendTemp1
  print "Temperatur an T1 = "; temp; "°C";
  print
  tog LED3
  pause 10
  tog LED3
  pause 10
  tog LED3
  pause 10
  tog LED3
return

#SendTemp2
  print "Temperatur an T2 = "; temp2; "°C";
  print
  tog LED4
  pause 10
  tog LED4
  pause 10
  tog LED4
  pause 10
  tog LED4
return

#Klingeln
  Print "DingDong"
  Pause 5
  Print "DingDong"
return

#DoorOpen1
  LED3 = ON
  Beep 568,5,0
  LED3 = OFF
return

#DoorOpen2
  LED3 = ON
  Beep 568,5,0
  LED3 = OFF
return