plusminus
25.02.2007, 23:17
Also ich habe ein RN Mega2560 mit dem SD21 verbunden:
Folgender Aufbau
Lipo --> SD21 (Regelt auf 5V) --> RN Mega2560
Das RN MEga2560 läuft soweit auch korrekt. ( Lässt sich flashen, LED kann ich blinken lassen. )
SCL und SDA sind auch ordnungsgemäß miteinander verbunden.
'################################################# ##
'erstebeispiel.bas Demo zu Modul RN-Mega2560
'für
'RoboterNetz Board RN-Mega2560 ab Version 1.0 und
'
'Aufgabe:
'Laesst LED blinken
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'Eigene Programmbeispiele sind im Roboternetz gerne willkommen!
'################################################# #############
'Diese Anweisung setzt die Fusebits automatisch korrekt (Syntax $PROG LB, FB , FBH , FBX )
$prog , 255 , &B11011001 , 'Quarz an / Teiler aus / Jtag aus
$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 ' 64
$swstack = 68 '44
$crystal = 16000000 'Quarzfrequenz
Config Pind.5 = Output
Led Alias Portd.5
Declare Sub SetServo(byval Servonumber As Byte , Byval Servospeed As Byte , Byval Servoposition As Word)
Dim Servonumber As Byte
Dim Servospeed As Byte
Dim Servoposition As Word
Dim Servo(4) As Byte
Const Sd21_adress = &HC2
I2cinit
Do
Led = 0 ' --> LED AN
Waitms 100
Call Setservo(0 , 20 , 1200)
Led = 1
Waitms 1000
Led = 0
Waitms 100
Call Setservo(0 , 20 , 1800)
Led = 1
Waitms 1000
Loop
End
Sub Setservo(byval Servonumber As Byte , Byval Servospeed As Byte , Byval Servoposition As Word)
Servo(1) = Servonumber
Servo(2) = Servospeed
Servo(3) = Low(servoposition)
Servo(4) = High(servoposition)
I2cstart
I2csend Sd21_adress , Servo(1) , 4
I2cstop
End Sub
Folgendes Problem gibt es:
LED geht AN und dann passiert nichts mehr :!:
Kommentiere ich die Funktionsaufrufe aus, so blinkt die LED brav, wie sie es auch tun sollte.
Nun meine Fragen:
1. MUSS ich die I2C pins im Code definieren :?:
ala:
Config Scl = Portd.0
Config Sda = Portd.1
2. Sollte das SD21 die Servos bei neustart nicht automatisch in Mittelstellung bringen :?:
3. Der Compiler meldet keine Fehler, im Funktionskopf sind z.b. "byval" nicht ganz korrekt geschrieben (Groß/Klein-Schreibung), könnte es daran liegen :?:
4. Muss ich den ISP-Programmer vom Board abziehen o_O :?:
Bin für jede Antwort dankbar :!:
mfg plusminus
Folgender Aufbau
Lipo --> SD21 (Regelt auf 5V) --> RN Mega2560
Das RN MEga2560 läuft soweit auch korrekt. ( Lässt sich flashen, LED kann ich blinken lassen. )
SCL und SDA sind auch ordnungsgemäß miteinander verbunden.
'################################################# ##
'erstebeispiel.bas Demo zu Modul RN-Mega2560
'für
'RoboterNetz Board RN-Mega2560 ab Version 1.0 und
'
'Aufgabe:
'Laesst LED blinken
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'Eigene Programmbeispiele sind im Roboternetz gerne willkommen!
'################################################# #############
'Diese Anweisung setzt die Fusebits automatisch korrekt (Syntax $PROG LB, FB , FBH , FBX )
$prog , 255 , &B11011001 , 'Quarz an / Teiler aus / Jtag aus
$regfile = "m2560def.dat"
$hwstack = 82 '80
$framesize = 68 ' 64
$swstack = 68 '44
$crystal = 16000000 'Quarzfrequenz
Config Pind.5 = Output
Led Alias Portd.5
Declare Sub SetServo(byval Servonumber As Byte , Byval Servospeed As Byte , Byval Servoposition As Word)
Dim Servonumber As Byte
Dim Servospeed As Byte
Dim Servoposition As Word
Dim Servo(4) As Byte
Const Sd21_adress = &HC2
I2cinit
Do
Led = 0 ' --> LED AN
Waitms 100
Call Setservo(0 , 20 , 1200)
Led = 1
Waitms 1000
Led = 0
Waitms 100
Call Setservo(0 , 20 , 1800)
Led = 1
Waitms 1000
Loop
End
Sub Setservo(byval Servonumber As Byte , Byval Servospeed As Byte , Byval Servoposition As Word)
Servo(1) = Servonumber
Servo(2) = Servospeed
Servo(3) = Low(servoposition)
Servo(4) = High(servoposition)
I2cstart
I2csend Sd21_adress , Servo(1) , 4
I2cstop
End Sub
Folgendes Problem gibt es:
LED geht AN und dann passiert nichts mehr :!:
Kommentiere ich die Funktionsaufrufe aus, so blinkt die LED brav, wie sie es auch tun sollte.
Nun meine Fragen:
1. MUSS ich die I2C pins im Code definieren :?:
ala:
Config Scl = Portd.0
Config Sda = Portd.1
2. Sollte das SD21 die Servos bei neustart nicht automatisch in Mittelstellung bringen :?:
3. Der Compiler meldet keine Fehler, im Funktionskopf sind z.b. "byval" nicht ganz korrekt geschrieben (Groß/Klein-Schreibung), könnte es daran liegen :?:
4. Muss ich den ISP-Programmer vom Board abziehen o_O :?:
Bin für jede Antwort dankbar :!:
mfg plusminus