Hallo zusammen,
nach einigem hin und her habe ich mich nun doch entschlossen I²C zum verbinden meiner Controller zu verwenden. Ich schildere einfach nochmal kurz was genau ich vor habe.
Derzeit besteht die Schaltung aus 2 Controllern:
1 x Mega32 - soll der Master sein, Sensorenwerte kommen hier rein und werden in "Bewegung" umgesetzt.
1 x Mega8 - Dient zur Motorsteuerung, demnach müsste das ja der Slave sein.
Der Mega32 soll dem Mega8 nun bestimmt Befehle senden z.B. "A1", der Mega8 weis nun was er zu tun hat z.B. vorwärts fahren.
---
Nun schreib ich einfach mal eben auf, was ich bereits über I²C erfahren habe und hoffe, dass das der Richtigkeit entspricht.
Ich weis bereits, dass es immer einen Master geben muss und mehrere Slaves geben kann, jede I²C Komponente hat eine bestimmte Adresse, mit der sie eindeutig angesprochen werden kann.
Zum Schaltungsaufbau:
Ich muss ja 2 Ports pro Controller zur Verfügung stellen für SDA und SCL, diese werden dann mit den Komponenten verbunden und über einen 1K Widerstand auf VCC gezogen? (sollte ich hier mist erzählen, bitte korrigieren )
---
Kommen wir nun zu meiner eigentlichen Frage, wie zum Teufel programmiert man das nun In Bascom, wie sage ich welchem Controller wer Master und wer Slave ist, wie kann ich z.B. einen String senden und den beim anderen wieder empfangen?
Ich weis, dass sich eine I²C Routine folgendermaßen aufbaut:
Code:
i2c_init
i2c_start
i2c_sendebyte(slaveid)
i2c_sendebyte(wert1)
i2c_sendebyte(wert2)
i2c_stop
aber ich habe kA wie man das jetzt als sinnvolles Programm zusammen setzt.
Bin für jede Art von Hilfe sehr dankbar, es gibt ja auch zu diesem Thema nicht wirklich gute Tutorials, habe zumindest keine gefunden, bis auf das hier im RN Wissen.
LG
Daniel
Lesezeichen