Ahoi,
zur Zeit versuche ich Morsecode, welchen ich von einem Programm generieren lasse über ein anderes Programm zu erkennen. Zum Erkennen der Töne verwende ich ein Beispiel, das ich hier im Board gefunden habe (
http://www.delphipraxis.net/internal...630&highlight= - LiveTest).
Jetzt habe ich mir dazu auch eine Strategie überlegt, wie der Code erkannt werden soll. Undzwar überprüfe ich, sobald die Aufzeichnung des Codes gestartet wurde, ob der Ton über einem bestimmten Pegel liegt. Wenn dies nicht der Fall ist ruft sich die Prozedur wieder selbst auf bis der Ton über diesem Pegel liegt. Danach wird die vordefinierte Tonlänge für einen kurzen Ton abgewartet und erneut eine Überprüfung des Pegels vorgenommen. Liegt dieser nun noch immer über dem vorbestimmten Maß dann handelt es sich um einen langen Ton und es wird wieder der Zeitraum der Tonlänge abgewartet und die Prozedure von vorne gestartet. Wenn der Ton unterhalb dieses Pegels liegt, was der Fall ist wenn es sich um einen kurzen Ton handelt, dann wird eine Tonlänge abgewartet und die Prozedure wiederum von vorne gestartet.
Das habe ich auch alles in Quelltext umgesetzt, aber sobald ich die Aufzeichnung starte bleibt das Programm hängen
Die Überprüfung des Tons sieht so aus:
Delphi-Quellcode:
procedure TForm1.TonPruefen;
var Anfangszeit,Zwischenzeit : integer;
begin
if Pegel > 2000000000 then begin
Anfangszeit := GetTickCount;
repeat
Zwischenzeit := GetTickCount;
until Zwischenzeit - Anfangszeit >= 800;
if Pegel > 2000000000 then begin
MemoLog.Text := MemoLog.Text + #13#10 + 'Lang';
Anfangszeit := GetTickCount;
repeat
Zwischenzeit := GetTickCount;
until Zwischenzeit - Anfangszeit >= 800;
TonPruefen;
end
else
begin
MemoLog.Text := MemoLog.Text + #13#10 + 'Kurz';
Anfangszeit := GetTickCount;
repeat
Zwischenzeit := GetTickCount;
until Zwischenzeit - Anfangszeit >= 800;
TonPruefen;
end;
end
else
TonPruefen;
end;
Kann mir vielleicht jemand sagen, warum das Programm hängen bleibt und wie man das beheben kann?
Schon mal vielen Dank im Vorraus für eure Antworten.
mfg any_key