PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6 Slave Register



Nebukat2010
17.11.2013, 20:55
Hallo,
Ich bin gerade dabei die RP6 Base über I2C anzusprechen. Ich verwende dazu einen RS232 --> I2C Converter von ELV.
Ich konnte bis jetzt schon viele Register auslesen und über ein eigenes Visual C# Programm anzeigen.
(https://www.roboternetz.de/community/threads/63517-RP6-Steuern-%C3%BCber-I2C-PC-Interface)
Ich hatte dafür eine Zusammenfassung der Register aus einer Anleitung aus dem Internet. Diese Tabelle war mit Register und Parameterbeschreibung für die Commands. Diese finde ich nun leider nicht mehr. Ich glaube es war ein Arexx Dokument mit einer blauen Tabelle. Wahrscheinlich übersehe ich es einfach.

Hier nun meine Frage:
-Hat einer so eine Auflistung?
-Kann mir einer sagen wo diese steht.

Ich werde mein Programm dann hier zur Verfügung stellen.

Vielen Dank Nebukat

RolfD
18.11.2013, 01:39
Hallo...
Ich verstehe die Frage nicht so ganz.
Damit dein Interface mit dem RP6 interagiert, musst du doch das RP6-Slave Programm auf dem RP6 laufen haben, was wiederum im Quellcode des RP6 vorliegt? Da kannst du doch die Register und Bedeutungen alle einsehen?



#define I2C_REG_STATUS1 0
#define I2C_REG_STATUS2 1
#define I2C_REG_MOTION_STATUS 2
#define I2C_REG_POWER_LEFT 3
#define I2C_REG_POWER_RIGHT 4
#define I2C_REG_SPEED_LEFT 5
#define I2C_REG_SPEED_RIGHT 6
#define I2C_REG_DES_SPEED_LEFT 7
#define I2C_REG_DES_SPEED_RIGHT 8
#define I2C_REG_DIST_LEFT_L 9
#define I2C_REG_DIST_LEFT_H 10
#define I2C_REG_DIST_RIGHT_L 11
#define I2C_REG_DIST_RIGHT_H 12
#define I2C_REG_ADC_LSL_L 13
#define I2C_REG_ADC_LSL_H 14
#define I2C_REG_ADC_LSR_L 15
#define I2C_REG_ADC_LSR_H 16
#define I2C_REG_ADC_MOTOR_CURL_L 17
#define I2C_REG_ADC_MOTOR_CURL_H 18
#define I2C_REG_ADC_MOTOR_CURR_L 19
#define I2C_REG_ADC_MOTOR_CURR_H 20
#define I2C_REG_ADC_UBAT_L 21
#define I2C_REG_ADC_UBAT_H 22
#define I2C_REG_ADC_ADC0_L 23
#define I2C_REG_ADC_ADC0_H 24
#define I2C_REG_ADC_ADC1_L 25
#define I2C_REG_ADC_ADC1_H 26
#define I2C_REG_RC5_ADR 27
#define I2C_REG_RC5_DATA 28
#define I2C_REG_LEDS 29


Wie die Register zu ihren Werten kommen steht in der Funktion void task_updateRegisters(void)
und deren Definitionen / Aufbau finden sich in der RP6Lib. Wo ist das Problem?
Gruß Rolf

Nebukat2010
18.11.2013, 16:31
Hallo Danke für die Antwort.
Soweit ist mir das schon klar auch das ansteuern und so. Ich finde nur dass die Beschreibung der CMDs incl. Parameter nicht so leicht rauszulesen ist. Ich habe vor ein paar Tagen eine Tabelle gefunden in der das super beschrieben war bit für bit .
z.b Also ich sende per I2C die Adress des Slaves: 10
und dann das CMD Byte z.b. 03 für die LEDS und das Byte der LEDs z.b. 01 für die LED SL1.
Diese Tabelle suche ich kann Sie aber leider nicht finden. Deshalb frage ich hier nach.
Danke
Nebukat

RolfD
18.11.2013, 21:07
Meinst Du evtl. die Tabellen aus RN-Wissen?
http://www.rn-wissen.de/index.php/RP6_-_Programmierung
Oder was aus dem Projekt Remotrol?
http://sourceforge.net/projects/rp6remotrol/
Hm.. ne sonst weiß ich nichts zu einer Tabelle, der I2C Slave ist ja auch nicht "genormt" und die Leute werden sich den selbst so umschreiben wie sie ihn brauchen.
Wahrscheinlich macht es mehr Sinn, die Arbeit zu investieren und selbst ein Slave beizulegen wie remotrol es auch macht... den Du dann aber auch selbst dokumentieren kannst/musst.
Gruß Rolf

Nebukat2010
19.11.2013, 21:04
Ja denke so werde ich es wohl machen. Danke