Moin!

Zitat von
deHarry
Hallo Matthias,
dazu habe ich ein paar Fragen. Darf ich?
Ja natürlich!
Der Quadcopter hat ein Flyduino Board mit ein Mega2650 drin. Ich hab aber grade eben das MiniWii aufgebaut und ein kleines Compare Match Programm draufgeflasht. Das MiniWii hat ein M328p.
Compare Match ist eigentlich ganz einfach. Die On Compare Ports als Ausgang definieren und den zugehörigen Ausgang als PWM Compare Timer Konfigurieren.
Code:
Config Portd.6 = Output 'OC0A
Config Timer0 = Pwm , Compare A Pwm = Clear Up , Prescale = 64
Der Timer startet automatisch und mit den Wert in den Compare0A Register kann man jetzt die Puls-Weite einstellen.
Code:
COMPARE0A = 125 ' 1ms Pulse-Weite
COMPARE0A = 250 ' 2ms Pulse-Weite
Warum starten bei dir die Timer neu??? Einmal gestartet laufen die Timer durch egal was das Programm macht.

Zitat von
deHarry
Du schreibst "das PWM-Signal...", auf dem Foto sehe ich aber BL-Motoren, die ziemlich sicher einen ESC benötigen, der traditionell kein PWM versteht, sondern auf PPM beharrt. Das machen meine zumindest so
Ich will kein Streit vom Zaun brechen und vieleicht liege ich auch total Falsch.
Aber ich bin mehr sehr sicher das die BL-Regler nur ein PWM Signal verstehen (Puls Weiten Modulation) Der Regler oder ein Servo wertet die "Weite" des Pulses aus. 1ms bis 2ms unabhängig von der Framelänge.
PPM hingegen ist im Prinzip das Gegenteil. PPM ist die Puls Phasen Modulation. Dabei haben die Pulse eine Fixe Länge und die Information liegt in der Low-Phase des ganzen Frames. PPM wird für Summensignale genutzt und enthält meist mehrere Kanäle die durch die festen Puls-Längen getrennt werden.
Genug geklugscheißert 
Mit den Timing hast du Recht und deine 40µs passen wie die Faust aufs Auge.
Ich verwende im Moment Hobbywing 18A Regler von Giantcod. Die scheine damit kein Problem zu haben. Zyclus-Zeit liegt bei 2,04ms was pi mal Daumen 490Hz ergibt was noch ein Tick schneller ist als Willas I2C/PWM Wandler.
In den Regler ist ja auch nur ein AVR drin. Der wertet das Signal auch nur mittels Interrupts aus, steigende/fallende Flanke. Wenn ich mich nicht verrechnet habe hat der Controller bei 16Mhz und 40µs immernoch 640 Zyklen zeit in die Interrupt Routine zu kommen.
Es muss ja irgendwie funktionieren. Die MultiWii Systeme haben auch 490Hz auf der PWM Seite. Wie kommen die wohl auf diese Frequenz??
Gruß
Matthias
Lesezeichen