
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo ich schon wieder, ich habe verschiedene Varianten von ACK getestet... i2c_getack in zusammenhang mit i2c_stop leifert immer ein Low an Port 5,6,7,8 - Datenwort egal i2c_getack Ohne i2c_stop führt zu selbigem setzt ich is2_sendnack ein zusammen mit Datenwort &b11111111 dann werden auch tatsächlich alle ports auf high geschalten, jedoch ein verändern das Datenwortes auf &b11111110 schaltet nicht Port 1 sondern Port 2 auf Low... &b11111100 setzt mir port 2 und 3 auf low würde sagen da schiebt einer meine daten eine Binärstelle weiter. Ich bin kurz davor das 500Gramm Programmiergerät mit dem Holzstiel zu holen (Hammer) mfg Maik > Hallo, > ersetz es mit "sys I2C_GETACK" > So arbeitet es bei meiner Station. > > MfG ManfredW > > > 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 |