PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM Verständnisfrage



Amri
31.03.2005, 17:09
Hallo,
ich hätte einmal eine Frage zum PWM-Signal beim ATMega8515:
Wenn ich das richtig verstanden habe, dann sind doch die PWM-Kanäle nichts weiter als Signale, die durch die Counter erzeugt werden.
Woher hat der ATMega8515 aber drei PWM-Kanäle, wenn er nur zwei Counter hat?
Und noch etwas: Wenn ich die PWM-Kanäle zur Servoansteuerung verwende, dann kann ich die Counter doch nicht mehr für andere Dinge verwenden.
Oder versteh ich da irgendwas einfach nur falsch?

Michael
31.03.2005, 17:21
Hallo Amri,

Woher hat der ATMega8515 aber drei PWM-Kanäle, wenn er nur zwei Counter hat?
man kann mehrere PWM-Kanäle mit den Timern verbinden, z.B. OC1A+OC1B.

Oder versteh ich da irgendwas einfach nur falsch?
Die Servoimpulse werden nicht über die Hardware-PWM erzeugt, wäre ja Verschwendung.

Gruß, Michael

Amri
31.03.2005, 23:36
Irgendwie hab ich das glaub ich immer noch nicht so ganz kapiert.
Deshalb jetzt mal ganz konkret: An welche drei Pins muss ich meine Servos hängen, um die PWM-Kanäle zu nutzen? Und wie stelle ich dann für jeden einzelnen Kanal die Impulsdauer ein?

Marco78
01.04.2005, 10:44
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=541
Das PDF aus https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=4940&highlight=pwm
Und: https://www.roboternetz.de/phpBB2/search.php

Im PDF steht allgemein die Funktion der PWM. Es wird auch ein Beispiel gezeigt.
Im Artikel sind die Bezeichnungen der PWM Ausgänge aufgeführt (OCx). Das Datenbaltt für den 8515 habe ich jetzt nicht vorliegen. Aber auf der zweiten Seite sind die Ausgänge auch bezeichnet.
Mit der Suche wirst du auch noch weitere Hilfe zum Thema PWM bekommen.

Ein Tipp (scheint geheim zu sein, auf meine Frage hat ja keiner geantwortet :D )
OC2 kannst du in BASCOM mit Ocr2 = x ansprechen. Wobei X die Variable ist den den Wert vorgibt.
Achte auch drauf, um wieviel Bit es sich bei den PWM-Kanälen handet. Bei 8 Bit wäre x max. 255 und bei 10 Bit max. 1023.
Die Impulsdauer wird dann mit der Variable vorgegeben. Aber im PDF ist das schön beschrieben.

Die Servoimpulse kannst du auch Softwaremäßig ansteuern. Einfach eine bestimmte Zeit an und eine bestimmte Zeit ausschalten.

Wenn du die PMW (und die Timer und was da sonst dran hängt) für nichts anderes Benötigst, ist es keine Verschwendung, sondern vereinfacht dir die Arbeit!

Somit sollten alle Fragen beantwortet sein. Am besten testest du die PWM erstmal mit einer LED, um den Zusammenhang der Werte zu sehen.

Die Hardware-PWM hat den Vorteil, das du nicht immer in eine Routine springen musst und dort den Pin ein und ausschalten musst. In der Zeit kannst du nämlich nix anderes machen. Und das restliche Programm muss ja auch noch ausgeführt werden. Hardware-PWM brauch nut den neuenWert, wenn er sich geändert hat. Und sonst wird der alte beibehalten.
Software-PWM muss dauerhaft aufgerufen werden. Wenn zwischen den Aufrufen das andere Programm anläuft, werd der Zustand am Pin nicht geändert und bleibt auf H oder L und die Pulsweite ist absolut nichtmehr die, die man haben wollte.

Michael
01.04.2005, 11:59
Hallo Marco78


Wenn du die PMW (und die Timer und was da sonst dran hängt) für nichts anderes Benötigst, ist es keine Verschwendung, sondern vereinfacht dir die Arbeit!

ja, alles klar. Hast du schon einmal ein Servo auf diese Weise angesteuert? Vielleicht sogar ein Beispiel??


In der Zeit kannst du nämlich nix anderes machen. Und das restliche Programm muss ja auch noch ausgeführt werden.

ein Timerinterrupt stört aber da nicht...

Gruß, Michael

Marco78
01.04.2005, 12:16
Ich versteh die Frage jetzt nicht.
Geht es dir darum, das du meintest, das Software-PWM angebrachter wäre ich aber meinte, das Hardware-PWM keine Verschwendung wäre?

Zu 1.: Nein, ich habe überhaupt keine Servos. Bist du der Meinung, es geht mit Hardware-PWM nicht, oder ist die Frage erst gemeint, weil du auch Hardware-PWM verwenden willst und nicht weisst, wie es geht?

Und was 2. ausdrücken soll kann ichabsolut nicht nachvollziehen.

Michael
01.04.2005, 12:42
Hallo Marco78,
du empfiehlst die Hardware-PWM zur Ansteuerung von einem Servo.
Das ist in meinen Augen Humbug.
Die PWM ist zur Ansteuerung von Gleichstrommotoren oder zur Frequenzerzeugung oder was weiß ich gemacht, aber sicher nicht für die Servoansteuerung. Daß es unter Umständen funktioniert, ist kein Grund, einem Anfänger das zu empfehlen.
Du schickst ihn damit auf den falschen Weg.


Und was 2. ausdrücken soll kann ichabsolut nicht nachvollziehen.

Bring einfach ein Servo zum Laufen, mit mindestens 100 Zwischenschritten zw. 1 und 2ms, dann weißt du es.
Gruß, Michael

Marco78
01.04.2005, 12:52
Vielleicht solltest du erstmal einem Anfänger die Unterschiede erklären und nicht nur pauschal sagen "wäre ja Verschwendung"!
Da hätte man gleich sagen können, es geht nicht ;)
Da jeder mal Anfänger ist, muss man das erstmal lernen. Sag mal einem Kind, wenn es sich was in den Mund stecken will, was gefährlich ware, "Nein" Was macht es? Sich das in den Mund stecken. Spätestens wenn du nicht hinschaust.
Sagst du "Nein, weil ..." akzeptiert es das schon ehr. Weil es dann weiss, warum nicht.
Vorrausgesetzt, es versteht, was man ihm sagt.
Und jeder, der sich hier anmelden kann, nachdem er eine Verbindung zum Internet hergestellt hat und hier ein Text schreiben kann und ihn abschicken kann, sollte in der Lage sein, zu verstehen, was man ihm sagen wenn man es sagt!

Verschwendung von Hardwarefunktionen (wie PWM) bedeutet noch lange nicht, das es technisch damit nicht zu machen ist.
Warum sagt man das nicht einfach? Und erklärt in 2 Sätzen, warum das nicht geht?


Bring einfach ein Servo zum Laufen, mit mindestens
100 Zwischenschritten zw. 1 und 2ms, dann weißt du es.
Gruß, Michael
Sag mir, wo da dein Problem ist und ich helfe dir ;)

Michael
01.04.2005, 13:18
Da hätte man gleich sagen können, es geht nicht

Das habe ich nicht gesagt, weil es ja geht. Allerdings mehr schlecht als recht.
Der OP wollte ursprünglich ein Servo mit HW-PWM ansteuern, siehe dazu meine 2. Antwort im ersten Post.
Daraufhin hast du dich an der Verschwendung hochgezogen.


Sag mir, wo da dein Problem ist und ich helfe dir

Du solltest nicht pauschal eine HW-PWM zum Ansteuern von Servos empfehlen. Programmier es doch einfach mal, bevor du es empfiehlst.
Gruß, Michael

Marco78
01.04.2005, 13:36
Sorry, es sollte absolut nicht so aussehen, als ob ich mich an der Verschwendung hochziehe!
Ich wollte nur bemerken, das Soft-PWM mehr Ansprüche an das Programmieren stellt.
Verschwendung ist es nur dann (meine Meinung) wenn man die Timer für was besseres gebrauchen kann.