hallo,

ich da gerade auf einen eintrag gestossen, der mir zunächst fehlerhaft vorkommt.
vielleicht kann das mal jemand überprüfen.

es geht um folgende seite:
http://rn-wissen.de/index.php/Bascom...r#Hardware_TWI

wenn man dort auf punkt2 klickt (Hardware TWI ) findet man einen programmcode unterhalb des textes "Unter Zuhilfenahme des Datenblattes könnte eine Highend-Version so aussehen: "

Code:
$regfile = "M32def.dat"                           ' the used chip 
$crystal = 16000000                               ' frequency used 
$baud = 9600

$lib "i2c_twi.lbx"                                ' Für Hardware TWI 

Config Twi = 400000                               ' Init TWBR und TWSR 

' TWI gleich einschalten, das macht Bascom ansonsten erst beim I2CStart ! 
TWCR = &B00000100                                 ' nur TWEN setzen 

Const Pcf_write = &H40                            ' Slaveadresse 
Const Pcf_read = &H41

' Startausgabe 
Print
Print "I2C-TWI High-Demo mit PCF 8574"
Print

Do
    I2cstart
    If TWSR = &H08 Then                           ' Start wurde abgesetzt 
        I2cwbyte Pcf_write                        ' Slaveadresse ausgeben 

        If TWSR = &H18 Then                       ' Slave hat sich gemeldet 
            I2cwbyte &HAA                         ' Datenbyte ausgeben 

?FEHLER?            If TWSR <> &H28 Then                  ' Byte erfolgreich übertragen 
                Print "Byte mit NACK quittiert !"
            End If
        Else
            Print "kein Slave !"
        End If
    Else
        Print "Fehler bei Start"
    End If

    ' Immer Stop, damit die Buspegel wieder stimmen 
    I2cstop

    Print "E " ; Err                              ' Err = 0 -> kein Fehler ! 

    Waitms 1500

    I2cstart

    If TWSR = &H08 Then                           ' Start wurde abgesetzt 
        I2cwbyte Pcf_write                        ' Slaveadresse ausgeben 

        If TWSR = &H18 Then                       ' Slave hat sich gemeldet 
            I2cwbyte &H55                         ' Datenbyte ausgeben 

            If TWSR <> &H28 Then                  ' Byte erfolgreich übertragen 
                Print "Byte mit NACK quittiert !"
            End If
        Else
            Print "kein Slave !"
        End If
    Else
        Print "Fehler bei Start"
    End If

    ' Immer Stop, damit die Buspegel wieder stimmen 
    I2cstop

    Print "E " ; Err                              ' Err = 0 -> kein Fehler ! 

    Waitms 1500

Loop

End
ich habe die fragwürdige zeile mal mit "?FEHLER?" markiert.

meines erachtens sollte es nicht " If TWSR <> &H28 Then ' Byte erfolgreich übertragen " heissen sondern " If TWSR = &H28 Then ' Byte erfolgreich übertragen "

da kann ja mal einer drüberschauen.

gruss klaus