mikrocontroller.net

Forum: PC-Programmierung Pulsecodemodulation in C?!


Autor: Thomas I. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wir müssen in de Schule einen PCM machen.
Dieser soll über ein in C geschriebenes Programm den Com-Port
ansprechen,an dem ein Tiefpass aus Kondensator (47µF-Elko) und
Lautsprecher hängt.
Entsprechend der Frequenz soll ein Ton ausgegeben werden. Das Programm
und die Schaltung haben wir schon,aber irgendwie funktioniert es
nicht.
Vielleicht habt ihr eine Idee... Das Programm ist im Anhang.

Eigentlich müsste es gehen,denn unser Lehrer hat uns ein Buch gezeigt
da steht ein Visual Basic Code drinnen der funzen müsste... auch das
befindet sich im Anhang.
Also:
es funzt nicht:

Es kommt ein ziemlich konstanter "Ton" (eher ein Rauschen) aus dem
Lautsprecher, egal ob der Wert frequenz verändert wird.

Der code ausm buch is net von mir,der andere schon. Zuerst hab ich mit
den Leuten aus meiner Gruppe den Visual Basic Code in C versucht
umzuschreiben... und jetzt haben wir das Proggi so verändert,wie es
sich logisch anhört,aussieht,wie auch immer =)

Es soll einen Ton entsprechend der Frequenz ausgeben.

Unser Lehrer is ein bissi inkompetetnt und kann uns net helfen =/ (ich
glaub er hats net mal ausprobiert)

Muss man da maybe irgenwie was mit bitweisem verschieben machen? wenn
ja,wie geht das?

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das Programm so richtig überflogen habe, werden auf der
seriellen Schnittstelle nacheinander in binärer Form Werte ausgegeben,
die aus einer Sinustabelle entnommen werden.
Diese heisst in VB Dat, und in C Data[].

Würden diese Werte an einen D/A-Wandler angelegt werden, an dem der
Lautsprecher angeschlossen ist, dann würde das ganze in der Tat
funktionieren, aber auf der seriellen Schnittstelle wird ein Bitstrom
ausgegeben, ein direkt daran angeschlossener Lautsprecher gibt nur
diesen Bitstrom wieder. Das hat aber mit dem eigentlichen Signal rein
gar nichts zu tun, dazu kommt auch, daß die serielle Schnittstelle
zusätzlich zu den Nutzdaten auch noch weitere Bits ausgibt, nämlich das
Start- und ein Stopbit.

Selbst wenn auf der Schnittstelle nacheinander Nullen ausgegeben würden
(der Lautsprecher nach Deutung Eurer Aufgabe also gar nichts ausgeben
sollte), würde ein Signal ertönen, nämlich die Start- und Stopbits der
seriellen Schnittstelle.


Da hat euer Lehrer was ganz ungemein grundlegendes nicht verstanden,
das kann so gar nicht funktionieren.

Aufgrund der Start- und Stopbits wäre auch der Versuch, statt
PCM-codierter Daten ein PWM-codiertes Signal zu erzeugen, annähernd zum
scheitern verurteilt.

Also:
Entweder ihr schließt einen D/A-Wandler an der seriellen Schnittstelle
an (was gar nicht so leicht ist, denn solche Dinger gibt es meines
wissens nach nicht mit einem geeigneten Interface), oder ihr
modifiziert Euer Programm so, daß die Daten auf der
Parallelschnittstelle ausgegeben werden und Ihr schließt an die einen
D/A-Wandler an (da reicht ein Widerstandsnetzwerk), oder aber Ihr
vergesst die ganze Chose und schasst den Lehrer als inkompetenten
Deppen.
Was mag der da für ein komisches Buch haben?

Autor: Thomas I. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha,das is ja interessant...

kA wie das Buch heißt...ich kanns dir morgen schreiben...

Danke erstmal!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.