PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : i2c low-byte high-byre



rille
08.11.2005, 12:16
Hallo,

kann mir bitte jemand helfen ich habe folgendes Problem.

Ich habe rn-control über i2c mit rn-motor verbunden.
Das klappt alles und ist prima.

Nun will ich meinen Schrittmotor eine definierte Schrittzahl drehen lassen, die mehr ist als 256.
Also muß ich doch aus meiner Variabel “schritte” (word) zwei Bytes machen um sie an die
i2c Routine zu übergeben.

Mit meiner Unkenntnis und der Anleitung zum rn-motor habe ich ein Programm geschrieben.
Hier die entsprechenden Stellen.

Schritte = 321

Schritte_low = Schritte Mod 256
Schritte_high = Schritte / 256


'Anzahl Schritte Drehen
I2cdaten(1) = 10
I2cdaten(2) = Befehl_schritte_drehen
I2cdaten(3) = Low(schritte_low)
I2cdaten(4) = High(schritte_high)
I2csend I2crnmotorslaveadr , I2cdaten(1) , 5
I2cstop




Bitte sagt mir was da falsch ist.

Gruß Rille

PicNick
08.11.2005, 12:30
Das ist doppelt gemoppelt, wie man so sagt.
Mach es (einfach) so:


DIM Schritte_lo as byte
DIM Schritte_hi as byte
DIM Schritte as word at Schritte_lo overlay


Schritte = 321

'Anzahl Schritte Drehen
I2cdaten(1) = 10
I2cdaten(2) = Befehl_schritte_drehen
I2cdaten(3) = schritte_lo
I2cdaten(4) = schritte_hi
I2csend I2crnmotorslaveadr , I2cdaten(1) , 5
I2cstop

rille
08.11.2005, 15:56
Hallo Robert

danke für deine Hilfe.
Läuft alles prima.

Gruß Rille