Hallo,
ich habe mir einen Servo-Controller zugelegt. Modell SD21.
Das möchte ich nun ansteuern.
Nachdem ich die Library von Peter Fleury eingebunden habe, und mir das Beispielprogramm angesehen habe, bin ich zu der Erkenntnis gekommen das man zunächst das INIT durchführen muss, dann kommt die Addrese oder das Register in dem man schreiben möchte und als nächstes dann der Wert. Zum Schluß dann ein Stop.
In der Doku von dem Controller ist dann folgendes aufgeführt (Auszug):
Register Servo Function
0 1 Speed
1 1 Low byte
2 1 High byte
Soweit sogut, die Addresse, damit sich das Ding überhaupt angesprochen fühlt ist 0xC2 ($C2).
Nun habe ich folgendes probiert:
Code:
#define Dev24C02 0xC2 // device address of EEPROM 24C02, see datasheet
int main( void )
{
uint16_t two_bytes = 0x3E8;
uint8_t high_byte = two_bytes & 0xff00;
uint8_t low_byte = two_bytes & 0x00ff;
i2c_init(); // initialize I2C library
i2c_start_wait(Dev24C02+I2C_WRITE);
i2c_write(0x00); //Adresse (Speed)
i2c_write(0x00); //Wert
i2c_stop();
i2c_start_wait(Dev24C02+I2C_WRITE);
i2c_write(0x01); //Adresse (Pos lowByte)
i2c_write(low_byte); //Wert
i2c_stop();
i2c_start_wait(Dev24C02+I2C_WRITE);
i2c_write(0x02); //Adresse (Pos highByte)
i2c_write(high_byte); //Wert
i2c_stop();
while(1)
{
}
}
Es passiert rein gar nichts.
Nun frage ich mich was da so alles falsch dran ist.
In dem Beispielprogramm der Doku zu dem SD21 war folgendes zu lesen:
I2COUT SDA, SD21, Servo1, [Speed, Servo.LOWBYTE, Servo.HIGHBYTE]
Die senden das also in einem Rutsch rüber. Das liegt aber vielleicht daran, das das BASIC ist und die Funktioinen komplett anders laufen.
Wer kann mir helfen?
Gruß, Andreas
/////////////////EDIT/////////////
Habe den ersten Fehler gefunden:
Die Pinne am Controller waren vertauscht. Irgendwie taugen diese Wannenstecker nix.
Aktueller Stand:
Der Servocontroller schickt den Servo ins Nirvana. Es läuft auf den Endanschlag und würde gern noch weiter. Dabei wird es recht warm.
Also wird wohl etwas beim senden schief laufen.
Diese HighByte / LowByte Geschichte oben ist auch nur zusammenkopiert. Ist da vielleicht ein Fehler drin?
Lesezeichen