Jens_
25.05.2008, 18:57
Hi
Ich habe folgendes Problem ich besitze den RN-motorcontrol und kann nur eine 255 auslesen!
Mein Sytem:
Ich habe ein Microcontroller von Fujitsu (MB90F497/G) der per I2C an den motorcontroller
https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=325 angeschlossen ist.
Die Ansteuerung der Motoren klappt auch.
ADRESSE =0x58
ADRESSE_READ =0x59
I2C_2_Start();
I2C_2_MasterWrite(ADRESSE);
I2C_2_MasterWrite(35);
I2C_2_MasterWrite(3);//befehlscode
I2C_2_MasterWrite(3);//beide motoren
I2C_2_MasterWrite(low);
I2C_2_MasterWrite(high);
I2C_2_Stop()
Mein Lesebefehl:
byte strecke1,strecke2,strecke3,strecke4;
I2C_2_Start();
I2C_2_MasterWrite(ADRESSE);
I2C_2_MasterWrite(35);
I2C_2_MasterWrite(42);
I2C_2_MasterWrite(motor);
I2C_2_Stop();
I2C_Delay(6);//Delay
I2C_2_Start();
I2C_2_MasterWrite(ADRESSE_READ);
strecke1=I2C_2_MasterRead(0);//ack
strecke2=I2C_2_MasterRead(0);//ack
strecke3=I2C_2_MasterRead(0);
strecke4=I2C_2_MasterRead(1);//nack
I2C_2_Stop();
Das Problem ist ich bekomme bei jedem eingelesenem Byte eine 255 zurück.
Ich habe mir den I2C auch schon auf dem Osziloskope angeschaut ich bekomme wirklich nur high Signale auf dem SDA.
Hab parallel dazu die mitgelieferte Software RN-DC Motorsteuerung laufen die anzeigt das die Aktuelle Strecke 0 ist .
Kann mir jemand sagen warum es nicht funktioniert??
Ach ja hab auch ein kleines Delay(2sec) bei der vorgabe der Drehzahl kann es an dem RN motorcontroller liegen? Habe meine Werte kontrolliert die werden im ms Bereich übergeben.
Grüße Jens
Ich habe folgendes Problem ich besitze den RN-motorcontrol und kann nur eine 255 auslesen!
Mein Sytem:
Ich habe ein Microcontroller von Fujitsu (MB90F497/G) der per I2C an den motorcontroller
https://www.roboternetz.de/phpBB2/dload.php?action=file&file_id=325 angeschlossen ist.
Die Ansteuerung der Motoren klappt auch.
ADRESSE =0x58
ADRESSE_READ =0x59
I2C_2_Start();
I2C_2_MasterWrite(ADRESSE);
I2C_2_MasterWrite(35);
I2C_2_MasterWrite(3);//befehlscode
I2C_2_MasterWrite(3);//beide motoren
I2C_2_MasterWrite(low);
I2C_2_MasterWrite(high);
I2C_2_Stop()
Mein Lesebefehl:
byte strecke1,strecke2,strecke3,strecke4;
I2C_2_Start();
I2C_2_MasterWrite(ADRESSE);
I2C_2_MasterWrite(35);
I2C_2_MasterWrite(42);
I2C_2_MasterWrite(motor);
I2C_2_Stop();
I2C_Delay(6);//Delay
I2C_2_Start();
I2C_2_MasterWrite(ADRESSE_READ);
strecke1=I2C_2_MasterRead(0);//ack
strecke2=I2C_2_MasterRead(0);//ack
strecke3=I2C_2_MasterRead(0);
strecke4=I2C_2_MasterRead(1);//nack
I2C_2_Stop();
Das Problem ist ich bekomme bei jedem eingelesenem Byte eine 255 zurück.
Ich habe mir den I2C auch schon auf dem Osziloskope angeschaut ich bekomme wirklich nur high Signale auf dem SDA.
Hab parallel dazu die mitgelieferte Software RN-DC Motorsteuerung laufen die anzeigt das die Aktuelle Strecke 0 ist .
Kann mir jemand sagen warum es nicht funktioniert??
Ach ja hab auch ein kleines Delay(2sec) bei der vorgabe der Drehzahl kann es an dem RN motorcontroller liegen? Habe meine Werte kontrolliert die werden im ms Bereich übergeben.
Grüße Jens