INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo, ich habe das "sys I2C_SendACK" mal weggelassen ohne Erfolg. Jetzt ist das Ansteuern der anderen Ports nicht mehr möglich. Denke die übertragenen Daten stimmen dann nicht mehr mit den Spezifikationen für I2C überein. Danke trotzdem!! mfg Maik > Hallo, > > ich vermute, dass > sys I2C_sendACK > nach write weggelassen werden muss. > > MfG ManfredW > > > Hallo zusammen, > > > > ich bin gerade an die Grenzen meiner M-Unit gestossen und bin gerade dabei eine Porterweiterung via PCF8574AT zu realisieren. > > Damit ich auch die ausreichende Geschwindigkeit erreiche habe ich die I2C Assemblerroutine geladen und möchte über diese auf den PCF zugreifen. > > > > Jetzt kann ich alle Ports umschalten (7-1), ausser Port0 dieser ist immer LOW. Wo liegt da mein Denkfehler im Programm? > > Zur Verdeutlichung hier meinen Testquelltext: > > > > Kann mir da jemand einen Hinweis geben? > > Danke Maik > > > > '------------------------------------------ > > ' Definitionen der I2C-Einsprungadressen > > '------------------------------------------ > > define I2C_START &h101 > > define I2C_STOP &h10e > > define I2C_READ &h12f > > define I2C_WRITE &h119 > > define I2C_GETACK &h156 > > define I2C_SENDACK &h173 > > define I2C_SENDNACK &h17C > > > > '------------------------------------------ > > ' Definitionen der šbergabe-Variable > > '------------------------------------------ > > define BASIC_IO byte[1] ' Übergabe mit 1. BASIC-Variablen-Byte ($A1) > > > > define BaseAdr byte[2] ' Basis-Adresse des ersten Moduls > > define Base8574a &b01110000 ' Basis-Adresse PCF 8574A > > > > '------------------------------------------------------------------------- > > #main > > > > BaseAdr = Base8574a > > > > sys I2C_START > > BASIC_IO = BaseAdr 'moduladresse > > sys I2C_Write > > BASIC_IO = &b11111111 'alle 8 ports sollten auf 1 sein > > sys I2C_WRITE > > sys I2C_sendACK > > sys I2C_STOP > > > > > > end |
Antwort schreiben |