Neil
99.9% harmless nerd
Administrator
Registriert seit: Aug 2000
Wohnort: Delft
Verein: SOLARIS
Beiträge: 7776
Status: Offline
|
Hi,
das man mit einem AVR ein Servo ansteuern kann ist mir schon etwas länger bekannt, aber wie sieht es aus mit dem einlesen eines Servosignals? Nehmen wir z.B. ein handelsüblichen Empfänger wo man Servos anschließen kann. Anstatt eines Servos klemmt man einen Eingang eines AVR ans. Was muss man alles beachten und gibt es schon eine fertige Softwareroutine die mir aus der Pulsfolge einen 8Bit Wert liefert? Kann man auch mehr als einen Servokanal einlesen? Mein Ansatz wäre den internen Zähler zu verwenden. Mit der steigenden Flanke resete ich den Zähler. Mit fallender Flanke entnehme ich den Zählerstand. Bei der nächsten steigenden Flanke wird wieder resetet.
Gruß
Neil
Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu.
|
TheSmartGerman
PU-Meister
Registriert seit: Jun 2007
Wohnort: Schwabenland
Verein:
Beiträge: 245
Status: Offline
|
Hallo Neil,
also das sollte das kein Problem sein. Du hast dir die Lösung ja schon vorgelegt. Also einfach einen Timer laufen lass und dann auf die Flanken triggern.
Anstatt den Timer zu reseten könnte man auch einfach die Timer stände speichern und dann subtraieren aber das sind Feinheiten.
Benedikt
Schrauben-sägen-löten-kleben, so vergeht viel Zeit im Leben! TheSmartGerman
|
Neil
99.9% harmless nerd
Administrator
Registriert seit: Aug 2000
Wohnort: Delft
Verein: SOLARIS
Beiträge: 7776
Status: Offline
|
Hi,
spannend wird es dann wenn man mehrere Kanäle abfragen will. Hat dann jeder Kanal seinen Timer?
Gruß
Neil
Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu.
|
Lschreyer
Grand Master of Rocketry
Registriert seit: Nov 2006
Wohnort: Zeven
Verein: AGM, L3
Beiträge: 2035
Status: Offline
|
Hat nicht Uli beim Magier einen Eingang für ein Fernsteuerkanal vorgesehen? Vielleicht kann er dazu etwas sagen? Uli?
Louis
Always keep the pointy side up!
|
Reinhard
Überflieger
Registriert seit: Sep 2003
Wohnort: Österreich
Verein: TRA #10691, AGM
Beiträge: 1187
Status: Offline
|
Hi, um das Thema nochmals aufzuwärmen. Für das einlesen mehrerer Servokanäle muss man etwas Arbeit in die Software stecken, da einem die Hardware (im Gegensatz zur Servoansteuerung) nicht alles abnimmt. Es gibt nur wenige Timer (z.B. 3 in einem Atmega8). Am einfachsten ist es bei beiden Flanken die Timerwerte zu speichern (ev. über externen IRQ getriggert) und sie danach zu subtrahieren. Der mögliche Timerüberlauf muss dabei natürlich berücksichtigt werden. Es gibt eine Input Capture Funktion die diese Tätigkeit geringfügig vereinfacht, aber sie ist oft nur einkanalig vorhanden und erfordert nach wie vor die "manuelle" Weiterverarbeitung jeder einzelnen Flanke. Gruß Reinhard
Geändert von Reinhard am 28. Juni 2009 um 22:09
|
|