-
-
Administrator
Robotik Visionär
Hi Johannes,
ja AVR-Pascal ist hier kaum verbreitet. Das liegt unter anderem auch daran das es nur für den Mega8 einen günstigen Compiler gibt und der Mega8 etwas knapp für größerer Bots ausgelegt ist.
Die I2C-Befehle von Bascom dürften nicht so sehr verschieden sein. Der Befehl mit dem Array ist nur eine Erleichterung da man so nicht alle Beides einzeln absenden muß. Man kann aber auch einen einfachen Befehl nutzen um einzelne Bytes zu senden.
Jeder RN-Motor Befehl besteht aus einer Sequenz von 5 Bytes. Das erste Byte muß immer 10 sein, danach kommt der Befehlscode und danach noch 3 Parameter.
Es gibt auch Befehle die weniger Parameter benötigen, dennoch müssen 5 Bytes gesendet werden. Der Inhalt der unbedeutend Bytes ist völlig egal.
Diese Methode wurde gewählt weil Bytesequenzen mit fester Länge platzsparender und sicherer verarbeitet werden konnten.
Welchen Bedeutung die einzelnen Bytes haben kannst du ja in der Tabell in der Anleitung recht gut ersehen.
Du mußt nur immer daran denken, ein Befehl besteht aus folgeder Sequenz:
i2cstart
slave Adresse senden (meißt Hex 56)
byte 1 senden (immer 10)
byte 2 senden (Befehlscode)
byte 3 senden (1. Parameter)
byte 4 senden (2. Parameter)
byte 5 senden (3. Parameter)
i2cstop
Damit sich der Motor erst mal dreht, müssen mindestens zwei Befehle gegeben werden:
Motor einschalten
Endlos drehen einschalten
Vorausgesetzt die Standard Stromstärke von 100mA reicht, würde dann schon Motor laufen. Ansonsten vorher noch Strom einstellen.
Wenn du die Slave Adresse durch einen I2C Befehl verstellst, dann ist dies dauerhaft verstellt. Also auch ein Reset oder Stromausfall stellt das nicht zurück. Du kannst diese natürlich durch einen neuen i2C-Befehl jederzeit wieder verstellen.
Sollte noch was unklar sein, einfach fragen.
Gruß Frank
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen