so sorry, hab das ganz vergessen, ahb viel zu tun ^^ schule, ähnliches
aber hier der code:
Code:
'###################################################
'Testprogramm 6
'für
'RoboterNetz Standard-Roboter Board RBNFRA 1.2
'
'Aufgabe:
'Testet Eingangsport indem Wert über RS232
'übermittelt wird (9600 Baud einstellen)
'
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de
'###################################################
$regfile = "m32def.dat" ' oder bei Mega16 $regfile = "m16def.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 Int1 = Rising
Enable Interrupts
On Int1 Int1_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 I As Byte
Dim J As Word
Dim A As Word
Dim B 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
B = 251 'Taste 2 (Port4)
A = 247 'Taste 1 (Port3)
I = 0
Do
If I2cdaten = A Then Gosub Motor1_2
If I2cdaten = B 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
Portc.3 = 0
Waitms 1
Portc.2 = 1
Portc.3 = 1
Waitms 1
Portd.6 = 0
Return
Read_data:
Return
Motoren_aus:
Portd.6 = 0
Return
Int1_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
bitte, sollte so funzen, jedes mal wenn der int vom pcf kommt, lies die taste ein
Martin
Lesezeichen