
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
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 Meine Homepage: http://manfred.wilzeck.de |
| Antwort schreiben |