Wombatz
03.10.2011, 19:44
Hallo zusammen,
ich versuche mein Servoboard SD21 über den Atmega anzusteuern. Die Kommunikation läuft über i2c. Hier versuche ich die I2C-Kommunikation getrennt von der Hauptschleife zu führen und diese nur für das Senden anzuspringen.
Wenn ich das Programm allerdings schreibe, bekomme ich immer eine Fehlermeldung; External routine not found [_ADDSIZETOFRAME]!!!
Aber wo liegt der Fehler??? Könntet ihr da mal drüberschauen? Ich versuche die Variablen von der Hauptschleife an die I2C-SendeSUB zu übergeben.
$regfile = "m8def.dat"
$hwstack = 100
$swstack = 100
$framesize = 100
$crystal = 3686400 'Quarzfrequenz
$baud = 9600
Config Scl = Portc.5 'Ports fuer IIC-Bus
Config Sda = Portc.4
Const Servo_adr = &HC2 'I2C Adress Servo Controller
Declare Sub Senden(byval Posit As Word)
Dim Tnr As Byte
Dim Lsb As Byte
Dim Msb As Byte
Dim Posit As Word
Dim A As Word
I2cinit
Tnr = 1 ' number of servo (0-x)
Do
Call Senden(1000)
Wait 3
Call Senden(2000)
Wait 3
Loop
Sub Senden(byval Posit As Word)
Lsb = Low(posit)
Msb = High(posit)
I2cstart
I2cwbyte Servo_adr ' serv CTRL I2C Addr
I2cwbyte 0 ' servo nr
I2cwbyte 0 ' speed
I2cwbyte Lsb ' lsb of position
I2cwbyte Msb ' Msb of position
I2cstop
Waitms 3000
End Sub
ich versuche mein Servoboard SD21 über den Atmega anzusteuern. Die Kommunikation läuft über i2c. Hier versuche ich die I2C-Kommunikation getrennt von der Hauptschleife zu führen und diese nur für das Senden anzuspringen.
Wenn ich das Programm allerdings schreibe, bekomme ich immer eine Fehlermeldung; External routine not found [_ADDSIZETOFRAME]!!!
Aber wo liegt der Fehler??? Könntet ihr da mal drüberschauen? Ich versuche die Variablen von der Hauptschleife an die I2C-SendeSUB zu übergeben.
$regfile = "m8def.dat"
$hwstack = 100
$swstack = 100
$framesize = 100
$crystal = 3686400 'Quarzfrequenz
$baud = 9600
Config Scl = Portc.5 'Ports fuer IIC-Bus
Config Sda = Portc.4
Const Servo_adr = &HC2 'I2C Adress Servo Controller
Declare Sub Senden(byval Posit As Word)
Dim Tnr As Byte
Dim Lsb As Byte
Dim Msb As Byte
Dim Posit As Word
Dim A As Word
I2cinit
Tnr = 1 ' number of servo (0-x)
Do
Call Senden(1000)
Wait 3
Call Senden(2000)
Wait 3
Loop
Sub Senden(byval Posit As Word)
Lsb = Low(posit)
Msb = High(posit)
I2cstart
I2cwbyte Servo_adr ' serv CTRL I2C Addr
I2cwbyte 0 ' servo nr
I2cwbyte 0 ' speed
I2cwbyte Lsb ' lsb of position
I2cwbyte Msb ' Msb of position
I2cstop
Waitms 3000
End Sub