PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RN Motor via I2C ansteuern



ceekay
10.02.2006, 21:09
Hallo,
ich habe vor mir die RN Motor von Robotikhardware zuzulegen.
Ich müsste allerding den I2C Bus zum ansteuern nutzen. Das ganze würde ich mit der RN Control machen (vorhanden). Bis jetzt habe ich nur die RS 232 Schnittstelle benutz und weiß nicht wie ich die RN Motor ansteuern soll.

Bei Robotikhardware ist nur ein Beispiel für Bascom vorhanden. Ich würde aber lieber in C programmieren.

Könnte mir jemand erklären wie ich das mit I2C programmtechnisch realisieren kann?

WIe würde es in C z. B aussehen wenn ich eine Drehrichtung für einen Bestimmten Motor vorgeben will?
1. Byte: 10
2. Byte: 4
3. Byte: 1
4. Byte: 0
5. Byte:

Das Datenblatt ist hier zufinden:
http://www.robotikhardware.de/download/rnmotor.pdf

Ich hoffe ihr könnt mir da weiterhelfen.

Vielen Dank im Voraus

ceekay
13.02.2006, 06:57
kann mir hier wirklich niemand weiterhelfen?
Es gibt doch bestimmt fertige c. Files um per I2C was zu verschicken!?

Andun
13.02.2006, 14:26
Ja, es gibt welche. Ich hab die neulich auch erst gesucht. (Noch nicht mal benutzt. :D Das mach ich nachher. :D)

Ich such mal schnell. Die waren hier im Download Bereich oder so. Ich edier es dann hier in den Beitrag von mir rein.

Andun

Nachtrag:

Hier: https://www.roboternetz.de/phpBB2/dload.php?action=category&cat_id=31
Aus dem Projekt "i2c rnkeylcd+winavr" kannst du die twimaster.c benutzen. Das hab ich noch nciht gemacht, aber das machen andere hier, und das werde ich nachher auch tun.

Ich hoffe das klappt.

Andun

ceekay
13.02.2006, 16:45
ok vielen Dank schonmal.
Ich werd mir das heut abend mal anschaun. Hab dann sicherlich noch die ein oder andere Frage....

ceekay
13.02.2006, 20:36
Also wenn ich das jetzt richtig verstehe, dann brauche ich nur die twimaster.c und die i2cmaster.h

Dann rufe ich i2c_init einmal auf.

Rufe i2c_start auf

dann i2c_write und übergebe das zu sendende Byte.

und anschließend einfach i2c_stop.

Ist das richtig so?

und kann mir wer erklären was die Funktionen i2c_start_wait, i2c_rep_start, i2c_read_ack und i2c_read_nack genau machen?

ich hoffe ihr habt verständnis für meine Unwissenheit...

Andun
13.02.2006, 21:04
Also eigentlcih steht das da ganz gut erklärt... :D

i2c_start_wait wartet halt solange bis der Bus frei ist, falls er grade belegt ist und rep_start brauchst du, wenn du z.b. zwischen schreiben und lesen wechseln willst, ohne den Bus frei zugeben. read_ack und read_nack sind wie der Name schon sagt zum lesen von Daten da.

Das hättest du dir aber anhand der Kommentare auch selbst zusammen reimen können. :D Daher weiß ich das ja auch nur.

Andun

ceekay
14.02.2006, 20:10
ok ich hab mir das nochmal genau angeschaut und ich denke das es machbar ist :D

ich werd mir die RN Motor mal bestellen und schaun wie ich damit zurecht komme.

Vielen Dank erstmal