Gast
#1133440
Hallo! Nachdem ich es jetzt geschafft habe, mir einen Servocontroller zu schreiben, mitdem ich 10 Servos ansteuern kann, will ich mich jetzt mit dem Getenteil davon befassen, dem Einlesen von RC-Kanälen eines Empfängers. Dazu überlegte ich mir 4 bessere und schlechtere Möglichkeiten. Ich benutze einen Mega8 mit dem internen 1Mh Takt. - Signalleitung des Servos an INT0 oder INT1 mit Interrupts auswerten. Nachteil: Maximal 2 Servos. Vorteil: Geringer Rechenaufwand - Ein Timer-Interrupt alles 10 Mikrosekunden auslösen und dort jeden Servopin überwachen und einlesen. Nachteil: Braucht viel Rechenaufwand wenn es überhaupt reicht mit den 1Mh Takt. Man kann wahrscheinlich nicht mehr viel anderes laufen lassen. Vorteil: Viele Servos - Mit dem ADC. Man hängt einen kleinen Kondensator an die Signalleitung und erhält so eine resultierende Spannung welche umgewandelt werden kann. Nachteil: Extrem ungenau Vorteil: etwa 7 Servos - Alle Servos auf einen eigenen I/O Pin und dann noch alle Leitungen mit Dioden zusammenhängen auf INT0 oder INT1. Dort mit Interrupts auf steigende oder fallende flanken kontrollieren und bei erkennen an den I/O Pins testen, welches Servo es ist. (Annahme, dass die Signale des Empfängers nacheinander kommen und nicht gleichzeitig) Nachteil: Hardwaremässig Aufwand Vorteil: Wenig Rechenleistung Kennt ihr noch andere Lösungsansätze? Es überzeugt mich noch keine so richtig. Gäbe diese Zusammenlegung auf INT1 oder 0 wie bei der letzten variante auch eine Softwarelösung? Wäre sehr froh über gute Tipps. Grüsse Alex