PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Compile Fehler bei Schrittzahl Richtung i2c



Astro
07.02.2008, 21:07
Hallo schönen Abend !

Ich hab in meinem Compiler den Fehler bei der Schrittzahl (1000) kann mir jemand die Zeile ausbessern und eventuell auch mal durch den Compiler testen es sollte ja auch funktionieren.

Danke






$regfile = "m128def.dat" ' Bei Mega 128

$framesize = 32
$swstack = 32
$hwstack = 64


$crystal = 16000000
$baud = 9600
Config Scl = Portd.0
Config Sda = Portd.1
Config I2cdelay = 10

I2cinit
Start Adc
Sound Portg.2 , 400 , 450
Sound Portg.2 , 400 , 250
Sound Portg.2 , 400 , 450
' ---------------------------------------------------
Const Befehl_motor_an_aus = 50
Const Befehl_ausschalten = 51
Const Befehl_drehrichtung = 52
Const Befehl_geschwindigkeit = 53
Const Befehl_endlosdrehung = 54
Const Befehl_schrittzahl = 55




Const Motor_1 = 1
Const Motor_2 = 2
Const Motor_3 = 3


Const I2crnmotorslaveadr = &H58 'I2C SlaveAdresse von RN-Schrittmotor Erweiterung


Dim I2cdaten(7) As Byte
Dim Lowbyte As Byte
Dim Highbyte As Byte
Dim Richtung As Bit


Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word

Dim Geschwindigkeit As Byte





Richtung = 0
Geschwindigkeit = 10

Do


Wait 2

I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
I2cdaten(1) = Befehl_geschwindigkeit
I2cdaten(2) = Motor_3
I2cdaten(3) = Geschwindigkeit
I2cdaten(4) = 12

I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
Toggle Richtung
I2cdaten(1) = Befehl_drehrichtung
I2cdaten(2) = Motor_1
I2cdaten(3) = Richtung

I2csend I2crnmotorslaveadr , I2cdaten(1) , 7
I2cdaten(1) = Befehl_schrittzahl
I2cdaten(2) = Motor_3
I2cdaten(3) = 1000
I2cdaten(4) = Lowbyte
I2cdaten(5) = Highbyte

Loop
End

for_ro
07.02.2008, 21:35
Du wirst da nur eine Zahl zwischen 0 und 255 (ein Byte) eingeben können.

Gruß

Rolf

Astro
07.02.2008, 21:58
Die Zeile sollte eigendlich die Schrittzahl beinhalten !

for_ro
07.02.2008, 22:14
Wenn ich die Anleitung richtig interpretiere, gibst du in Byte 3 das Low_Byte und in Byte 4 das High-Byte der Schrittzahl ein.
Für deine 1000 musst du also
I2cdaten(1) = Befehl_schrittzahl
I2cdaten(2) = Motor_3
I2cdaten(3) = 232
I2cdaten(4) = 3

Gruß

Rolf

Astro
08.02.2008, 16:44
Danke der Fehler ist weck !
Neus Problem unter Bascom Programmierung - Von mega 128 über i2c nach Schrittmotor

Es wird schon Funktionieren irgendwann mal die Hoffnung ist groß und aller Anfang schwer!

:-b