Danke, den Befehl "Incr" kannte ich noch nicht.
Ich muss das Programm mal auf einer Platine mit Hallsensoren testen,
in der Bascom-Simulation gibts noch Ungereimtheiten, der Ausgang geht nur an, wenn man den Eingang ein paar mal an und aus geschaltet hat...

Zwei Fragen noch:
1. Kennt Bascom kein "Or"?
2. Wenn ich "Debounce" einbauen will, muss das laut Hilfe in dem Hauptprogramm passieren. Wie bringe ich dann die jetzigen If..Then-Aufgaben des Hauptprogramms unter?

Hier der Code:

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

$regfile = "m8def.dat"
$crystal = 1000000
$hwstack = 100

'--------- Ein- und Ausgaenge ------------------------------------------

Config Pinb.3 = Input
   Eingang Alias Pinb.3
Config Portb.4 = Output
   Ausgang Alias Portb.4


'--------- Variblen ---------------------------------------------------

Dim A As Byte                                               'Klemmer
Dim B As Byte                                               'Korb

A = 0                                                       'Startwerte
B = 0

'--------- LCD --------------------------------------------------------

Config Lcd = 16 * 2
   Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
   Config Lcdbus = 4

'-------- Interrupts --------------------------------------------------

Config Int0 = Rising                                        'Interrupts reagieren auf steigende Flanke
Config Int1 = Rising
Enable Interrupts
Enable Int0                                                 'Interrups einschalten
Enable Int1
On Int0 Isr_von_int0
On Int1 Isr_von_int1

'-------- Hauptprogramm -----------------------------------------------

Main:
Do

 If Eingang = 1 And B < A Then
  Ausgang = 1
 End If

 If Eingang = 0 Then
  Ausgang = 0
 End If

 If A <= B Then
  Ausgang = 0
 End If


 Cls                                                        'LCD
 Locate 1 , 1
 Lcd "Klemmer:"
 Locate 1 , 10
 Lcd A
 Locate 2 , 1
 Lcd "Korb:"
 Locate 2 , 10
 Lcd B

Loop

'--------- Interrupt-Routinen --------------------------------------------

Isr_von_int0:
 Waitms 2                                                   'Routine 2ms warten lassen
 Incr A                                                     'Var A um eins erhöhen
Return

Isr_von_int1:
 Waitms 2                                                   'Routine 2ms warten lassen
 Incr B                                                     'Var B um eins erhöhen
Return
Gruß,
Johannes