PWM aus int. 4MHz => 250Hz

Gast #316077
Lesenswert?
• ▲
▼
Hi!

Ich habe eine Frage und zwar wie mache ich aus einem 4MHz internen Takt
ein 250 Hz moduliertes Signal??
Ich glaube eine 9bit PWM wäre hier am besten, aber was weiß schon ich
=)

Hat vielleicht jemand zufällig solch einen, zumindest ähnlichen Code,
der in C geschrieben ist?? wäre mir sehr sehr hilfreich!

vielen dank im voraus
Bernd
Gast #316078
Lesenswert?
• ▲
▼
"Ich habe eine Frage und zwar wie mache ich aus einem 4MHz internen
Takt
ein 250 Hz moduliertes Signal??"


Ich sach mal, es gibt mindestens 100 verschiedene
Modulationsverfahren.

Da mußt Du schon etwas präziser werden (AM, SSB, FM ... ?).


Peter
Gast #316080
Lesenswert?
• ▲
▼
so mein problem mit den 250Hz hat sich jetzt gelöst.
Verwende jetzt meine 4MHz internen Takt und dieser wird mit der 9bit
PWM über den daumen gerechnet auf 4kHz verkleinert (dies ist langsam
genug für meine aufgabe).

Nein Problem ist jetzt, dass ich ein gewisses bitmuster (1 byte groß)
von der UART einlese. Dieses Byte soll dan PWM moduliert werden, d.h.
auf 4kHz "verlangsamt" und dann wieder raus geschrieben werden, an
irgend einem freien port.

Hat jemand an kleines PWM programmierbsp für mich??

mfg hannes
Gast #316084
Lesenswert?
• ▲
▼
@Michael: Ich heiße Hannes Bernd(2ter name) Schwarz - nur die Leute
sagen alle Bernd zu mir =)

Hmm, heut klappt es nicht ganz mit meinen Erklärungen bzw. Fragen.

Ich probier es noch einmal ganz konkret.

> 1) ich lese über die UART regelmäßig ein Byte ein
> 2) zu diesem Byte werden 0x80 dazu addiert, da ich nicht bei 0
beginnen kann (ist bei meinem Programm so)
> daraus folgt ein Übertrag im HByte
> 3) jetzt sollten meine 2Byte ins Compareregister geschrieben werden
> als erstes das HByte, dann das LByte

> 4) diese werden jetzt statt mit 4MHz, mit ungefähr 4kHz am OC1A
hinausgeschrieben

meine Timerinitialisierung bisher lautet:

TCCR1A = 0x82;  // non-inverted 9bit PWM
TCCR1B = 0x01;  // CK

wird OC1A dann automatisch als ausgang gesetzt??
eigentlich doch schon ...... wird ja mit meinem NON-INVERTED auf 1
gesetzt oder?

Das ist eigentlich alles was ich machen will, komm nur noch nicht ganz
klar damit, wie ich die 2Byte ins Compareregister schreibe (zuerst H-
und dann L-Byte)

Ich hoffe ihr versteht mich jetzt =)

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.