RebellDerSonne
Cadet 2nd Year
- Registriert
- Sep. 2004
- Beiträge
- 17
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 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... Hier ist das Programm:
Danke im Vorraus, Rebell der Sonne
Dieser soll über ein in C geschriebenes Programm den Com-Port ansprechen,an dem ein Tiefpass aus Kondensator 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... Hier ist das Programm:
Code:
#include <math.h>
#include <windows.h>
#include <stdio.h>
int main ()
{
/* Definitionen*/
DWORD wb;
HANDLE hCom;
DCB dcb;
FILE *handle;
int Data[115200], n, p, nr, frequenz, perioden;
double sinwert;
/* Einstellung f. File & COM */
handle = fopen("sin.txt","w");
hCom = CreateFile("COM1",
GENERIC_READ|GENERIC_WRITE,
0, NULL, OPEN_EXISTING, 0, NULL);
dcb.BaudRate = CBR_115200; // set the baud rate
dcb.ByteSize = 8; // data size, xmit, and rcv
dcb.Parity = NOPARITY; // no parity bit
dcb.StopBits = ONESTOPBIT; // one stop bit
perioden = pow(10,6);
frequenz = 100000;
nr = 115200/frequenz;
/* Berechnung der Sinuswerte */
for (n=0; n < nr; n=n+1)
{
sinwert = sin (2*M_PI * n/(double)nr);
Data[n] = 128 + floor(100 * sinwert + 0.5);
fprintf(handle,"%d\t%g\t%d\n",n,sinwert,Data[n]);
}
/* Ausgabe in File & COM */
for(p=0; p<perioden; p+=1)
{
unsigned char wert;
for (n=0; n < nr; n=n+1)
{
wert = Data[n];
WriteFile(hCom, &wert , sizeof(wert), &wb, 0);
}
}
printf("Ende!");
getchar();
return 0;
}
Danke im Vorraus, Rebell der Sonne