hartlralph
01.11.2010, 13:46
Hallo zusammen,
ich habe ein kleines Problem mit dem MD25 Board. Solange ich mit meinem Bascam Programm Dehzahlwerte zwischen 129 und 255 vorgebe funktioniert mein Programm einwanfrei. Sobald ich allerdings Drehzahlwerte in die andere Richtung vorgebe 0-127 übernimmt der Motor zwar einmal die Drehzahl allerdings hängt sich dann meine Bascom Programm auf. Verwende einen ATmega88 mit Hardware I2C.
hier noch kurz der Quelltext, vielleich sieht ja jemand spontan wo das roblem liegt.
$regfile = "m88def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$lib "i2c_twi.lbx" ' Für Hardware TWI
$crystal = 8000000 'Quarzfrequenz
$baud = 19200
Config Scl = Portc.5 'Ports fuer IIC-Bus
Config Sda = Portc.4
Config Portb.6 = Output
Config Twi = 400000 ' Init TWBR und TWSR
Config I2cdelay = 10
Tast1 Alias Pind.2
Tast2 Alias Pind.3
Tast3 Alias Pind.4
Config Tast1 = Input
Config Tast2 = Input
Config Tast3 = Input
Config Portb.6 = Output
Config Portb.7 = Output
Led1 Alias Portb.6
Led2 Alias Portb.7
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
I2cinit
Dim Wert As Byte
Do
If Tast1 = 0 Then
I2cstart
I2cwbyte &HB0
I2cwbyte 16 'Leseregister festlegen
I2cwbyte 32 'Leseregister festlegen
I2cstart
I2cwbyte &HB0
I2cwbyte 15 'Leseregister festlegen
I2cwbyte 0 'Leseregister festlegen
I2cstop
I2cstart
I2cwbyte &HB0
I2cwbyte 0 'Leseregister festlegen
I2cwbyte 128 'Leseregister festlegen
I2cstop
End If
If Tast2 = 0 Then
I2cstart
I2cwbyte &HB0
I2cwbyte 0 'Leseregister festlegen
I2cwbyte 255
I2cstop
End If
If Tast3 = 0 Then
I2cstart
I2cwbyte &HB0
I2cwbyte 0 'Leseregister festlegen
I2cwbyte 0
I2cstop
Set Led1
End If
Loop
End
Vielen Dank schon mal im vorraus.
MfG Ralph
ich habe ein kleines Problem mit dem MD25 Board. Solange ich mit meinem Bascam Programm Dehzahlwerte zwischen 129 und 255 vorgebe funktioniert mein Programm einwanfrei. Sobald ich allerdings Drehzahlwerte in die andere Richtung vorgebe 0-127 übernimmt der Motor zwar einmal die Drehzahl allerdings hängt sich dann meine Bascom Programm auf. Verwende einen ATmega88 mit Hardware I2C.
hier noch kurz der Quelltext, vielleich sieht ja jemand spontan wo das roblem liegt.
$regfile = "m88def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$lib "i2c_twi.lbx" ' Für Hardware TWI
$crystal = 8000000 'Quarzfrequenz
$baud = 19200
Config Scl = Portc.5 'Ports fuer IIC-Bus
Config Sda = Portc.4
Config Portb.6 = Output
Config Twi = 400000 ' Init TWBR und TWSR
Config I2cdelay = 10
Tast1 Alias Pind.2
Tast2 Alias Pind.3
Tast3 Alias Pind.4
Config Tast1 = Input
Config Tast2 = Input
Config Tast3 = Input
Config Portb.6 = Output
Config Portb.7 = Output
Led1 Alias Portb.6
Led2 Alias Portb.7
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1
I2cinit
Dim Wert As Byte
Do
If Tast1 = 0 Then
I2cstart
I2cwbyte &HB0
I2cwbyte 16 'Leseregister festlegen
I2cwbyte 32 'Leseregister festlegen
I2cstart
I2cwbyte &HB0
I2cwbyte 15 'Leseregister festlegen
I2cwbyte 0 'Leseregister festlegen
I2cstop
I2cstart
I2cwbyte &HB0
I2cwbyte 0 'Leseregister festlegen
I2cwbyte 128 'Leseregister festlegen
I2cstop
End If
If Tast2 = 0 Then
I2cstart
I2cwbyte &HB0
I2cwbyte 0 'Leseregister festlegen
I2cwbyte 255
I2cstop
End If
If Tast3 = 0 Then
I2cstart
I2cwbyte &HB0
I2cwbyte 0 'Leseregister festlegen
I2cwbyte 0
I2cstop
Set Led1
End If
Loop
End
Vielen Dank schon mal im vorraus.
MfG Ralph