so nun habe ich das Prgramm auf den Interrupt Int2 umgeschrieben.
Code:
'******************************************************************************
'über die Tasten 1[Porteingang 3] und 2[Porteingang 4] am rnbfra-Board sollen die beiden Schrittmotoren durch einen Interrupt gesteuert werden ein aus
'******************************************************************************

$regfile = "m32def.dat"
$baud = 9600
$crystal = 8000000                                          'Quarzfrequenz

Config Scl = Portc.0                                        'Ports fuer I2C-Bus
Config Sda = Portc.1

Config Pind.6 = Output                                      'Schrittmotoren Ein/Aus
Config Pinc.5 = Output                                      'Schrittmotor Links Richtung
Config Pinc.3 = Output                                      'Schrittmotor Links Step
Config Pinc.4 = Output                                      'Schrittmotor Rechts Richtung
Config Pinc.2 = Output                                      'Schrittmotor Rechts Step

Config Pinb.2 = Input                                       'Interrupt Int2

Config Int2 = Falling
Enable Int2
Enable Interrupts
On Int2 Int2_isr

Const Writeeingabeport_adr = &H7E                           'I2C Adr PCF 2
Const Readeingabeport_adr = &H7F                            'I2C Adr PCF 2

Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574
Dim Taste1 As Word
Dim Taste2 As Word
Dim I As Word

I2cinit
I2cstart
I2cwbyte &H74                                               'Schreibbefehl an PCF3 schicken
            'Led´s ein ,Motorendstufen ein, Port-Peripherie ein, RBN-Bus Sleep Modus aus (also Peripherie aktiv)
I2cwbyte &B00000010                                         'Datenbyte an PCF3
I2cstop

Portd.6 = 0                                                 'Schrittmotoren erst mal ausschalten

I2cdaten = 1


Taste1 = 247                                                'Taste 1    (Eingangsport-Port3)
Taste2 = 251                                                'Taste 2    (Eingangsport-Port4)
I = 200

'******************** Hauptprogramm ********************************************

Do
   If I2cdaten = Taste1 Then Gosub Motor1_2
   If I2cdaten = Taste2 Then Gosub Motoren_aus

Loop


'********************* Unterprogramme ******************************************

Motor1_2:
Portc.5 = 0                                                 'Richtung  Motor 1
Portc.4 = 1                                                 'Richtung  Motor 2
Portd.6 = 1                                                 'Motoren einschalten

Portc.2 = 0                                                 'Step rechts
Portc.3 = 0                                                 'Step links
Waitms 1
Portc.2 = 1                                                 'Step rechts
Portc.3 = 1                                                 'Step links
Waitms 1
Portd.6 = 0                                                 'Motoren ausschalten
Return

Read_data:
Return


Motoren_aus:
Portd.6 = 0                                                 'Motoren ausschalten
Return

Int2_isr:
   I2cstart
   I2cwbyte Readeingabeport_adr                             'Lesebefehl an PCF schicken
   I2crbyte I2cdaten , Nack                                 'Datenbyte von PCF lesen
   I2cstop
   Waitms 50
   Print I ; " Eingangsport Wert" ; I2cdaten
   Incr I
Return
Nur leider funktioniert es noch immer nicht.

Nochmal zur Funktionsweise:
An den Eingangsport 3 und 4 des rnbfra-Board habe ich je einen Taster der auf GND schaltet. Die Tasten geben Werte von 247 und 251 zurück.
Durch drücken einer Taste soll das Hauptprogramm(die Schleife) unterbrochen werden und den Wert in den I2cdaten schreiben. Damit zurück ins Hauptprogramm springen und den Wert entsprechend auswerten und das entsprechend Unterprogramm(Motoren1_2 bzw. Motoren_aus) aufrufen.

Habe ich irgendwo einen Denkfehler drin oder muß ich anders an das Problem ran...?

Gruß Silvio