Hallo zusammen,

nach langer Zeit beschäftige ich mich mal wieder mit meinen Megas. So nun spiele ich gerade ein wenig mit dem Befehl "Config Servo".

Soweit ist alles klar, nur eins ist mir nicht ganz verständlich. Warum brauche ich so "krumme" Servowerte? Wenn ich das richtig verstanden habe bastelt Bascom anhand der $crystal=XX, dem Preload = 10 die Timereinstellung so, das der Servowert eigentlich doch so um 100 (=1ms), 150 und 200 liegen sollte.

Ich habe schon mit versch. Takten und $crystal Werten gespielt. Die Werte sind immer "krumm".

Ich benutze:

1. Mega8
2. Internen Oszilator mit 8Mhz
3. Ein Graupner Digi-Servo DS361
4. Das ganze auf nem STK500
5. Terminalprogramm auf PC

Mit den paar Codezeilen hier, (nur zum Spielen) gebe ich übers Terminal die Werte fürs Servo vor.

Framesize; HW-Stack usw. habe ich mal weggelassen.

Code:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600

Dim Servowert As Byte
Dim Links As Byte
Dim Mitte As Byte
Dim Rechts As Byte

Dim Rc_ch1_out As Word
Dim Rc_ch1_in As Word

Config Pinb.0 = Output                                      'LED
Config Pinc.0 = Input                                       'Servo in
Config Pinc.2 = Output                                      'Servo out

Config Servos = 1 , Servo1 = Portc.2 , Reload = 10

Enable Interrupts

Portb.0 = 0

Links = 132
Mitte = 87
Rechts = 43

'+++++++++Werte bei 3.6864 Mhz und Preload =10++++++++++++++++
'Links = 97
'Mitte = 66
'Rechts = 36
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Servo(1) = Mitte

Do

Pulsein Rc_ch1_in , Pinc , 0 , 0
Print "R/C- Impuls Input:" ; Rc_ch1_in

Input "Bitte Servoinput (132- 43 bei 8Mhz Prozessortakt) : " , Servowert
Servo(1) = Servowert

Loop


End
Die Werte sind immer so entstanden: Ich habe mit den Endausschlagswerten so lange gespielt, bis das Digi-Servo ausgestiegen ist. Die Werte sind also die Maximalwerte die das Servo noch verarbeitet.

Gibt es einen Trick um "saubere" Werte zu bekommen die so in etwa an die 100, 150, 200 kommen? Die Auflösung ist zudem jetzt doch recht bescheiden. Kann man die mit dem Preloadwert (auf 5) noch erhöhen? Ich möchte in Zukunft ein wenig mit Servomanipulation arbeiten. Also die Signale vom Empfänger verändern und je nach dem manipuliert an die Servos weiterleiten.


Merci schon mal

Gruß
Markus