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: "
ich habe die fragwürdige zeile mal mit "?FEHLER?" markiert.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
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
Lesezeichen