sreuss
13.09.2009, 17:20
das Problem, wenn ich den Taster 1 oder 2 drücke sollen die Servos auf eine bestimmte position fahren, das machen sie zwar auch.
Wenn ich die taster jedoch längere Zeit drücke fahren die Servos wieder auf die ursprüngliche Position zurück.
Taster 1 an + und PORTB.0 angeschlossen
Taster 2 an + und PORTB.1 angeschlossen
Will damit irgenwann mal ein Freiflugmodell steuern, bin aber erst am Anfang meiner Programmierkarierre. Hab mal im Anhang noch eine Ausführliche funktiosbeschreibung falls es jemanden interessiert
$regfile = "m168def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
$hwstack = 32
$framesize = 32
$swstack = 32
Dim Center11 As Byte
Dim Center21 As Byte
Dim Pos11 As Byte
Dim Pos21 As Byte
Center11 = 105
Pos11 = 30
Center21 = 125
Pos21 = 70
Servo config
Config Servos = 2 , Servo1 = Portd.2 , Servo2 = Portc.1 , Reload = 10
Config Portd = Output
Config Portc = Output
Config Portb = Input
Portb = &H04
'finally we must turn on the global interrupt
Enable Interrupts
'ende Servo config
Do
If Pinb.0 = 1 Then Goto Glide
If Pinb.1 = 1 Then Goto Glide
If Pinb.0 = 0 Then Goto Bunt
If Pinb.1 = 0 Then Goto Bunt
End
Loop
Glide:
Servo(1) = Center11
Servo(2) = Center21
Waitms 1000
Bunt:
Servo(1) = Pos11
Servo(2) = Pos21
Waitms 1000
'Loop
End 'end program
Wenn ich die taster jedoch längere Zeit drücke fahren die Servos wieder auf die ursprüngliche Position zurück.
Taster 1 an + und PORTB.0 angeschlossen
Taster 2 an + und PORTB.1 angeschlossen
Will damit irgenwann mal ein Freiflugmodell steuern, bin aber erst am Anfang meiner Programmierkarierre. Hab mal im Anhang noch eine Ausführliche funktiosbeschreibung falls es jemanden interessiert
$regfile = "m168def.dat"
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
$hwstack = 32
$framesize = 32
$swstack = 32
Dim Center11 As Byte
Dim Center21 As Byte
Dim Pos11 As Byte
Dim Pos21 As Byte
Center11 = 105
Pos11 = 30
Center21 = 125
Pos21 = 70
Servo config
Config Servos = 2 , Servo1 = Portd.2 , Servo2 = Portc.1 , Reload = 10
Config Portd = Output
Config Portc = Output
Config Portb = Input
Portb = &H04
'finally we must turn on the global interrupt
Enable Interrupts
'ende Servo config
Do
If Pinb.0 = 1 Then Goto Glide
If Pinb.1 = 1 Then Goto Glide
If Pinb.0 = 0 Then Goto Bunt
If Pinb.1 = 0 Then Goto Bunt
End
Loop
Glide:
Servo(1) = Center11
Servo(2) = Center21
Waitms 1000
Bunt:
Servo(1) = Pos11
Servo(2) = Pos21
Waitms 1000
'Loop
End 'end program