PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schaltung zur Speicherung und Ausgabe einer vorgeg. Freq.



fusion777
31.05.2008, 11:29
Hey Leute,

ich bin neu hier und habe schon viel hilfreiches hier im Forum gelesen, echt super hier! Nun habe ich aber auch schon meine erste Frage:

Ich möchte mit einem atmega16 einen Servomotor ansteuern, das funktioniert soweit. Allerdings muss ich ja immer das PWM-Signal geben, damit der Servo in der eingestellten Position bleibt. In dieser Zeit kann ich also den µC nicht weiter nutzen. Ich möchte allerdings den Servo in einer bestimmten Position halten und währenddessen z.B. an einem anderen Port Ein- und Ausgaben machen.

Wie kann ich das realisieren? Gibt es evtl. ein Bauteil, dem man einmal eine Frequenz per µC vorgibt und der dann diese Frequenz solange ausgibt, bis eine neue Frequenz vorgegeben wird?

Danke schonmal für eure Hilfe! Ich kenne mich einfach noch zu wenig aus, leider habe auch Tutorials bei meinem Problem nicht weitergeholfen. Evtl. weil mir der richtige Begriff zum Suchen fehlt?

Danke schonmal!

BASTIUniversal
31.05.2008, 11:36
Hi!
Der ATMega16 besitzt 4 Hardware PWM-Ausgänge, da musst du nur einmal in der Software dein Tastverhältnis einstellen und er gibt es dir an den Pins OC0, OC1A, OC1B und OC2 aus. Du kannst für jeden Pin ein unabhängiges Tastverhältnis einstellen.

MfG
Basti

Dirk
31.05.2008, 13:12
Allerdings muss ich ja immer das PWM-Signal geben, damit der Servo in der eingestellten Position bleibt. In dieser Zeit kann ich also den µC nicht weiter nutzen.
Das stimmt so nicht (gut so!).
Google 'mal unter "Hardware-PWM" und "Software-PWM". Bei ersterem wird deinem Servo die PWM dauernd zur Verfügung gestellt (hat Basti schon geschrieben). Der uC ist völlig frei für andere Aufgaben. Wenn das Servo seine Position ändern soll, wird nur ein Wert neu eingestellt und das Programm ist sofort wieder frei für seine sonstigen Aufgaben.
Bei der Software-PWM ist der uC immer mehr oder weniger auch mit dem Servoimpuls beschäftigt. Je nach dem, wie gut man das programmiert, steht aber auch dann noch der größte Teil der uC-Leistung fürs Hauptprogramm zur Verfügung. Also: Der uC ist weiter nutzbar.
Dein M16 kann das also gut allein ohne einen besonderen zusätzlichen Baustein.

Gruß Dirk

shaun
31.05.2008, 13:30
Es geht hier ja wohl um Modellbau-Servos und deren PWM-Signal. Sicher kann man auch das irgendwie mit der Hardware-PWM hinstricken, aber auch in Software sollte es kein Problem sein, eine Portleitung zu setzen, dann sofort einen Timer zu starten, der nach Ablauf der gewünschten Impulsdauer einen Interrupt auslöst, um die Portleitung zurückzusetzen und den Timer für die Pausendauer zu konfigurieren.
Das kostet fast keine Rechenzeit, ist aber bei vorhandener Hardware-PWM müßig.