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?
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?
Aha,das is ja interessant... kA wie das Buch heißt...ich kanns dir morgen schreiben... Danke erstmal!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.