Hier mal der ganze Code, wie ich ihn momentan habe:
Code:
'Port-Deklarationen
Config Pinb.0 = Input
Config Pind.1 = Input
Config Pind.2 = Input
Config Pind.3 = Input
Config Pinb.1 = Output
Config Pind.6 = Output
Config Pind.0 = Output

'Einstellungen
'Aux = 1680                                                  'Wie lang soll der AUX an sein (in ms)
Startbs = 3                                                 'Wie lang soll der Startbildschirm angezeigt werden (in sec.)
Ist = 0                                                     'Startwert für den Ist-Wert
Soll = 1                                                    'Startwert für den Soll-Wert



'Den Ports Namen geben (nur fürs Layout)
Taster Alias Pinb.0
Ledtast Alias Portb.1
Ledaux Alias Portd.6
Lederr Alias Portd.0
Manual Alias Pind.1
Rst Alias Pind.2
Motor Alias Pind.3


'LED3 "Gerät nicht bereit / Fehler" aktivieren
Lederr = 1

'Display-Optionen
Cursor Off
Cls
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2       '

'Startbildschirm anzeigen
  Locate 1 , 1
  Lcd "Sebastian Rietig &"
  Locate 2 , 1
  Lcd "  Tjark Radewaldt"
  Locate 3 , 1
  Lcd " SkinnerMaus 3000+"
  Locate 4 , 1
  Lcd "    Skinner-Box"

'Startbs Sekunden den Startbildschirm aneigen, dann Anige löschen un Gerät freigeben
 Wait Startbs
 Cls

   Lederr = 0

'Arbeitsbldschirm anzeigen
   Locate 1 , 1
   Lcd " SkinnerMaus 3000+"
   Locate 2 , 1
   Lcd "Soll:" ; Soll
   Locate 3 , 1
   Lcd "Ist :" ; Ist
   Locate 4 , 1
   Lcd "Waiting for Signal"
Do
'Taster entprellen und bei High zu "Tasteran" springen
Entprell:
   Debounce Taster , 1 , Tasteran
   Debounce Manual , 1 , Manualan
   Debounce Rst , 1 , Rstan

'Wenn der Taster gedrückt wurde, in diese Schleife springen
Tasteran:
Do
If Taster = 1 Then
   Ledtast = 1
   Locate 4 , 1
   Lcd "Input high        "
   Ist = Ist + 1
   Locate 3 , 1
   Lcd "Ist :" ; Ist

      If Ist = Soll Then
         Locate 4 , 1
         Lcd "AUX enabled       "
         Ledaux = 1
         Ledtast = 0
'         Waitms Aux
'         Locate 4 , 1
'         Lcd "Waiting for Signal"
'         Ledaux = 0

         Soll = Soll + 1
         Ist = 0
         Locate 2 , 1
         Lcd "Soll:" ; Soll

         Locate 3 , 1
         Lcd "Ist :" ; Ist ; "   "
      End If

   Do
   Loop Until Taster = 0
Else
   Locate 4 , 1
   Lcd "Waiting for Signal"
   Ledtast = 0
   Goto Entprell

End If
Loop


'Bei Druck auf die Manual-Taste
Manualan:
Do
If Manual = 1 Then
   Locate 4 , 1
   Lcd "Manual Mode       "
   Ledaux = 1
'   Waitms Aux
'   Locate 4 , 1
'   Lcd "Waiting for Signal"
'   Ledaux = 0

   Do
   Loop Until Manual = 0
Else
   Locate 4 , 1
   Lcd "Waiting for Signal"
   Goto Entprell
End If
Loop

' Bei Druck auf die Reset-Taste
Rstan:
Do
If Rst = 1 Then
      Wait 3
      If Rst = 1 Then
   Locate 4 , 1
   Lcd "Resetting Data       "
   Lederr = 1
   Ist = 0
   Soll = 1
   Locate 2 , 1
   Lcd "Soll:" ; Soll ; "    "
   Locate 3 , 1
   Lcd "Ist :" ; Ist ; "    "
      End If
   Do
   Loop Until Rst = 0
Else
   Lederr = 0
   Ledaux = 0
   Locate 4 , 1
   Lcd "Waiting for Signal"
   Goto Entprell
End If

Loop



Motoraus:
         Ledaux = 0
         Locate 4 , 1
         Lcd "Waiting for Signal"
Return

Loop
End
ledaux schaltet ein Reed-Relais, an dem Der Motor hängt
motor ist der Taster an der Achse, er ist mitm 10k-Ohm-Widerstand zu GND gezogen

Sobald ich das Programm auf dem µC starte (egal ob faling oder rising) und die "Manual"-Taste drücke, zuckt der Motor und beim dritten Male zeigt das Display nur noch irgendwelche Sonderzeichen an, die sich bei irgendwelchen Taster-Impulsen munter verändern.