Hallo it03,
wo genau schließt du das Signal an direkt?
* an den Eingangsports 1 - 8
* direkt am Controller(z.B RNB-Bus)
Falls du die Eingangsports 1 - 8 verwendest, mußt du die ganze Abfrage über I2C machen. Da die Eingänge nicht direkt am Controller sondern am PCF2 hängen.
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
'###################################################
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
$baud = 9600
$crystal = 8000000 'Quarzfrequenz
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
Portd.6 = 0 'Schrittmotoren erst mal ausschalten
I2cinit
'******** Diese 4 Befehle sind nur ab RNBFRA Version 1.2 (nicht in V 1.1)
' notwendig und bzw. möglich (erweiterte Energiesparfunktion und LED´s)
' Bei Board 1.1 bitte auskommentieren oder löschen
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
'*********
I = 0
I2cdaten = 1
Do
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
Loop
End
An den PCF hast du kein PinA oder PortA.
Wenn alle Eingänge offen sind hast du den
Wert 255 / &B11111111
Je nach dem welche Eingang du gegen Masse ziehst ändert sich z.B. der
Wert 254 / &B11111110
Eine 1 bedeutet offener Eingang (5V) eine 0 geschaltet auf Masse (0V).
Wenn du mit 5V -Signale arbeitest(also auf 1 schalten willst), müßtest du mit 10k Pulldown-Widerstände die Eingänge auf Masse ziehen. Geht aber nur mit externer Beschaltung. Dann würdest du anstatt 255(&B1111111 - 0(&B00000000) als offenen Eingang haben.
Eine weitere Möglichkeit wäre dann noch die direkte Beschaltung am Controller (z.B. am RNB-Bus). Da wäre dann ein direktes Abfragen der beschalteten Pins möglich.
### Silvio ###
Lesezeichen