Du kannst keine neue Antwort schreiben


Autor Thema 
Neil

99.9% harmless nerd


Administrator

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 7019907 , Einlesen eines Servokanals [Alter Beitrag08. Mai 2009 um 15:23]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

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

TheSmartGerman

Registriert seit: Jun 2007

Wohnort: Schwabenland

Verein:

Beiträge: 245

Status: Offline

Beitrag 7019910 [Alter Beitrag08. Mai 2009 um 17:01]

[Melden] Profil von TheSmartGerman anzeigen    TheSmartGerman eine private Nachricht schicken   Besuche TheSmartGerman's Homepage    Mehr Beiträge von TheSmartGerman finden

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

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 7019911 [Alter Beitrag08. Mai 2009 um 17:13]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

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

Lschreyer

Registriert seit: Nov 2006

Wohnort: Zeven

Verein: AGM, L3

Beiträge: 2030

Status: Offline

Beitrag 7021978 [Alter Beitrag12. Mai 2009 um 10:47]

[Melden] Profil von Lschreyer anzeigen    Lschreyer eine private Nachricht schicken   Lschreyer besitzt keine Homepage    Mehr Beiträge von Lschreyer finden

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

Reinhard

Registriert seit: Sep 2003

Wohnort: Österreich

Verein: TRA #10691, AGM

Beiträge: 1186

Status: Offline

Beitrag 7044931 [Alter Beitrag28. Juni 2009 um 22:08]

[Melden] Profil von Reinhard anzeigen    Reinhard eine private Nachricht schicken   Besuche Reinhard's Homepage    Mehr Beiträge von Reinhard finden

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

[Zurück zum Anfang]
Du kannst keine neue Antwort schreiben