Andy schrieb:
> Hallo zusammen, ich hoffe ihr könnt mir wieder weiterhelfen.
Höchstens sehr begrenzt.
> Ich habe in einem Projekt mit einem Mikrocontroller, ein
> pulsweitenmoduliertes Signal mit Hilfe der Timer realisiert. Bei der
> Planung dazu bin ich auf eine Alternative gestoßen, bei der
> Speicherregister mit dem DMA an den GPIOs ausgegeben werden
Ja, kann man machen. Ist aber eine ähnliche Notlösung wie etwa, eine
SPI-Schnittstelle zur Ausgabe von Bilddaten aus einem Framebuffer an
einen VGA-Monitor zu verwenden. Geht sicher, aber richtig benutzte,
spezialisierte Hardware ist immer besser als solche Nötlösungen.
> Das würde ich ganz gerne jetzt nachholen und auch mal versuchen, aber
> mir fehlt noch ein wenig an Hintergrundwissen, welche
> Peripheriekomponenten werden benötigt und wie ist der Ablauf.
Ersteres hängt von der verwendeten Hardwareplattform ab, die du uns in
deiner unendlichen Weisheit natürlich wohlweislich verschwiegen hast
(ich tippe: RasPi) und letzteres ist überaus trivial: Man berechnet das
Muster in einem Stück RAM vor und läßt es dann die DMA zyklisch
ausgeben. Schon fertig.
Naja, fast...
Interessant wird es nämlich erst, wenn sich der Duty-Faktor der PWM im
Betrieb auch mal ändern soll. Dann wird's nämlich kompliziert bei der
Notlösung. Dann ist mindestens ein Double-Buffer-Schema für die DMA
angesagt und auch das löst nicht alle Probleme, denn der Buffer will
auch noch im genau richtigen Moment umgeschaltet werden, was nicht immer
so einfach ist, wie es sich anhört...
Aber auch das hängt von der verwendeten Hardwareplattform ab, die du uns
in deiner unendlichen Weisheit natürlich wohlweislich verschwiegen
hast...
Mit PWM-fähigen Timern lebt es sich viel leichter...