Ja, war eher eine Idee für eine Erweiterungsmöglichkeit. Wir hatten gerade ein paar Minuten Zeit. Primär interessiert mich erstmal die Weiterleitung von 2-3 Servo- und einer Hand voll Schaltkanälen.
Ich habe es jetzt geschafft, ein Servo-Signal zu erzeugen. Bin aber noch nicht gaanz zufrieden, es zittert noch etwas zu sehr bei der Übertragung eines Empfänger-Ausgangs. Wenn ich ein festes Signal übertrage, sieht das aber sehr sauber aus.
ein super Projekt! Vor allem, recht einfach anhand der Leuchtdauer der LED realisiert. Fast so, als würde man ein DCF77-Signal dekodieren. Da bin ich echt mal gespannt, wie es jetzt mit dem Servo und der flüssigen Bewegung weiter geht. Für die Erzeugung des Servosignals schau mal die Hardware PWM an und dort den Timer Compare Match (CTC-Modus vom Timer1). Das müsste Modus 12 sein, wenn ich das richtig im Datenblatt sehe bei Timer1.
Zitat von SteffKe im Beitrag #33... Ich habe es jetzt geschafft, ein Servo-Signal zu erzeugen. Bin aber noch nicht gaanz zufrieden, es zittert noch etwas zu sehr bei der Übertragung eines Empfänger-Ausgangs. Wenn ich ein festes Signal übertrage, sieht das aber sehr sauber aus... Viele Grüße Steffen
Vielleicht gibt es Ungenauigkeiten bei der Abtastung, dass der Wert um eine Stelle schwankt...
Zitat von SteffKe im Beitrag #33... Ich habe es jetzt geschafft, ein Servo-Signal zu erzeugen. Bin aber noch nicht gaanz zufrieden, es zittert noch etwas zu sehr bei der Übertragung eines Empfänger-Ausgangs. Wenn ich ein festes Signal übertrage, sieht das aber sehr sauber aus... Viele Grüße Steffen
Vielleicht gibt es Ungenauigkeiten bei der Abtastung, dass der Wert um eine Stelle schwankt...
Ich würde da eventuell die Messwerte der Abtastung mitteln. So vielleicht 4 Stück für den Anfang, damit es auch noch schnell genug reagiert. Das sollte das "Zappeln" etwas verringern.
das mit dem Timer 1 habe ich genauso wie du es sagst gemacht. Die Herausforderung bestand darin, den Timer zunächst für den Input-Capture zu nutzen, über den ich die Puls-Auswertung des Protokolls mache. Danach konfiguriere ich ihn um, sodass ich den Compare-Match-Interrupt verwenden kann. Damit generier ich dann das PWM-Signal.
Die Mittelung klingt nach einer guten Idee, das muss ich mir mal anschauen.
Der nächste große Brocken wird das Einlesen mehrerer Empfänger-Kanäle. Vielleicht nutze ich hier die Pin-Change-Interrupts und selektiere einfach den auszuwertenden Kanal. Danach sende ich das Protokoll und fang von vorne an. Mal sehen...
"Das sogenannte 'Abtasttheorem' von Nyquist und Shannon beschreibt die Tatsache, dass sich ein beliebig geformtes analoges Signal immer dann exakt wiederherstellen lässt, wenn die Abtastfrequenz beim Digitalisieren - und damit die Dichte der Stützpunkte - mehr als doppelt so hoch ist wie die höchste im Signal enthaltene Frequenz."
Daraus gefolgert: die Frequenz Deines Abtastsignals muss meht als doppelt so hoch sein wie die max. Frequenz des abzutastenden Rechtecksignals.
das klingt einleuchtend. Bis jetzt arbeite ich mit einer Taktfrequenz von 8MHz, wobei alle Timer mit Prescaler 8 laufen, dh. 1 Timer-Count = 1 us. Das macht es momentan in der Debugging-Phase einfacher, das Timing zu entwerfen.
Eventuell gehe ich irgendwann dazu über, die Zählrate auf 8 MHz zu steigern.
Nein, du musst die Abtastrate so hoch machen, dass du zwischen 2 möglichen Werten der Pulslänge landest. Das ist abhängig vom Empfänger. Ich glaube, der TX32 löst mit 1024 Werten auf (zwischen 1ms und 2ms). Du hast hier außerdem ein digitales Signal, das hat bei den Pulsflanken extrem hohe Oberwellen, da wird das nach Abtasttheorem schwer...