So, jetzt habe ich mir das LIB-Paket von MCS Electronics gekauft und mich entschieden, für erste Versuche zwei Mega8 und Hardware-I2C zu verwenden, um es so unkompliziert wie möglich zu machen.
Trotzdem wirft das Ganze bei mir immer wieder neue Fragen auf, auf die vielleicht hier jemand die Antwort weiß:
1. Wenn I2C und TWI tatsächlich das gleiche sind, wie in der Bascom-Hilfe ja imer wieder mantrahaft wiederholt wird, weshalb gibt es dann für beides Befehle zur Konfiguration eines Slaves (CONFIG I2CSLAVE und CONFIG TWISLAVE)?
2. ist mir bei ersten Versuchen aufgefallen, dass der Befehl CONFIG I2CSLAVE lediglich zwei Labels benötigt (I2c_master_needs_data und I2c_master_has_data), während die Verwendung von CONFIG TWISLAVE gleich ein halbes Dutzend Labels verlangt (twi_addressed_goread, twi_gotdata, twi_stop_rstart_received, twi_addressed_gowrite, twi_master_needs_byte und twi_master_need_nomore_byte).
Wenn der Slave eine variable Anzahl an bytes empfangen soll wäre es doch sinnvoll, nach der korrekten Read-Addressierung eine Zählvariable auf 1 zu setzen, sie nach jedem empfangenen Byte um 1 zu inkrementieren, und damit ein Array zu füllen. Wie kann man so etwas denn lösen, wenn man den CONFIG I2CSLAVE-Befehl nutzt, und dementsprechend nur die Labels I2c_master_has_data und I2c_master_needs_data hat?
3. Mit dem Befehl CONFIG TWISLAVE kann ich bisher leider gar nicht rumexperimentieren, weil beim Kompilieren stets die Fehlermeldung "Illegal character [expected(, got "[TWI_CBTR]]" erscheint. Weiß jemand damit etwas anzufangen? (Habe die Bascom-Version 2.0.7.3)
Lesezeichen