Вверх ↑
Этот топик читают: Гость
Ответов: 128
Рейтинг: 1
#1: 2010-03-17 14:34:46 ЛС | профиль | цитата
как сделать FM на подобие FSK (модема) и передать в звуковой поток(динамики компа).нужен только один полный период.1800ГЦ -ноль 1200ГЦ-один.
карма: 0

0
Ответов: 205
Рейтинг: 44
#2: 2010-03-17 15:06:45 ЛС | профиль | цитата
может так?

http://hiasm.com/forum_serv.php?q=56&id=1186
карма: 0

0
Ответов: 128
Рейтинг: 1
#3: 2010-03-17 15:11:32 ЛС | профиль | цитата
я имел в виду наушники или колонки компа.есть два файла в формате WAV ,первый файл содержит один период 1200ГЦ и второй содержит один период 1800ГЦ.[offtop][/offtop]не могу картинку вставить
карма: 0

0
Ответов: 205
Рейтинг: 44
#4: 2010-03-17 15:23:22 ЛС | профиль | цитата
В архиве лежит элемент который добавляет точку: doMakeSound в элемент Beep.
Для вывода звука на зв.карту
карма: 0

0
Ответов: 128
Рейтинг: 1
#5: 2010-03-17 15:50:45 ЛС | профиль | цитата
в принципе может и получится
wss60 писал(а):
.получаются промежутки между периодами ,микро контроллер их не проглатывает .попробую дальше разобраться.спасибо.
------------ Дoбавленo в 16.10:
1 период 1800ГЦ(с началом графика в нуле и концом в нуле) должен переходить в 1 период 1200ГЦ(с началом графика в нуле и концом в нуле) ,в итоге должна получаться одна плавная синусоида без разрывов и наложений друг на друга.как я понимаю необходимо бинарник файла WAV отправить на ЦАП звукового процессора .как это сделать?
карма: 0

0
Ответов: 8961
Рейтинг: 824
#6: 2010-03-18 14:42:04 ЛС | профиль | цитата
deman, был у меня ТЕЛЕТАЙП - вот, чуть переделал, проверте. code_17390.txt
Dilma, вчера часа три мучился с FTCG пока понял, что элемент FT_IfElse не работает, как задумывалось, сравнивал Real c Real - всё выкидывалось на False пришлось опять на IC переходить
карма: 19

0
файлы: 1code_17390.txt [6.4KB] [221]
Ответов: 128
Рейтинг: 1
#7: 2010-03-18 16:18:56 ЛС | профиль | цитата
просто супер.я уже начал было создавать файлы wave и сливать в один файл.спасибо
карма: 0

0
Ответов: 128
Рейтинг: 1
#8: 2010-03-22 19:07:34 ЛС | профиль | цитата
Леонид, в телетайпе есть маленький недостаток .идёт не корректное соединение синусоид, в области нуля идёт ступенька.в результате получается 10% ошибки.но всё равно спасибо
карма: 0

0
Ответов: 8961
Рейтинг: 824
#9: 2010-03-22 20:27:36 ЛС | профиль | цитата
deman, да, один семпл с "0", сейчас посмотрю, можно-ли его убрать.
------------ Дoбавленo в 20.50:
[b]deman[/b], вот IC - поставте вместо прежнего, ступенька должна исчезнуть

Add(InlineCode,3185247,413,168)
{
@Hint=#22:Расшифровка кода Морзе|
WorkPoints=#25:doStart=Стартовое событие|34:doWork=Строка на передачу из 0 и 1|31:doFreq0=Установка частоты для 0|31:doFreq1=Установка частоты для 1|42:doSound=Вычислить следующее значение звука|
EventPoints=#39:onSound=Выход следующего значения звука|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Windows,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|43: SinCos:Array[0..1, 0..511] of smallint;|25: _Freq0,_Freq1:double;|38: _Len0,_Len1,_LenText,_Tik:integer;|17: _Text:string;|40: _Sound0,_Sound1:boolean;//true,false|9: public|25: _data_Data:THI_Event;|22: onSound:THI_Event;|4: |51: procedure doStart(var _Data:TData; Index:word);|50: procedure doWork(var _Data:TData; Index:word);|51: procedure doFreq0(var _Data:TData; Index:word);|51: procedure doFreq1(var _Data:TData; Index:word);|51: procedure doSound(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.doStart;|13:var i:double;|14: j:integer;|5:begin|17: _Sound0:=false;|17: _Sound1:=false;|26: _Freq0:=2*pi*1800/44100;|26: _Freq1:=2*pi*1200/44100;|7: j:=0;|9: Repeat|22: i:=_Freq0*(j+0.5);|37: SinCos[0,j]:=round(sin(i)*32700);|11: j:=j+1;|16: Until i>2*pi;|13: _Len0:=j-1;|7: j:=0;|9: Repeat|22: i:=_Freq1*(j+0.5);|37: SinCos[1,j]:=round(sin(i)*32700);|11: j:=j+1;|16: Until i>2*pi;|13: _Len1:=j-1;|13: _Tik:=0; |4:end;|0:|29:procedure THiAsmClass.doWork;|14:var i:integer;|5:begin|31: _Text:=_Text+ToString(_Data);|26: _LenText:=Length(_Text);|4:end;|0:|30:procedure THiAsmClass.doFreq0;|13:var i:double;|14: j:integer;|5:begin|38: _Freq0:=2*pi*ToInteger(_Data)/44100;|38: if _Freq0<0.015 then _Freq0:=0.015;|36: if _Freq0>2.28 then _Freq0:=2.28;|7: j:=0;|9: Repeat|22: i:=_Freq0*(j+0.5);|37: SinCos[0,j]:=round(sin(i)*32700);|11: j:=j+1;|16: Until i>2*pi;|14: _Len0:=j-1; |4:end;|0:|30:procedure THiAsmClass.doFreq1;|13:var i:double;|14: j:integer;|5:begin|38: _Freq1:=2*pi*ToInteger(_Data)/44100;|38: if _Freq1<0.015 then _Freq1:=0.015;|38: if _Freq1>2.28 then _Freq1:=2.28; |7: j:=0;|9: Repeat|22: i:=_Freq1*(j+0.5);|37: SinCos[1,j]:=round(sin(i)*32700);|11: j:=j+1;|16: Until i>2*pi;|13: _Len1:=j-1;|4:end;|0:|30:procedure THiAsmClass.doSound;|14:var i:integer;|5:begin|15: _Tik:=_Tik+1;|18: if _Sound0 then|9: begin|25: if _Tik<=_Len0 then|44: _hi_onEvent(onSound,SinCos[0,_Tik]) |10: else|12: begin|16: _Tik:=0;|23: _Sound0:=false;|26: if _Text<>' then|23: begin |46: if str2int(copy(_Text,1,1))=0 then|18: begin|28: _Sound0:=true;|22: _Tik:=0;|50: _hi_onEvent(onSound,SinCos[0,_Tik]);|16: end|16: else|18: begin|28: _Sound1:=true;|22: _Tik:=0;|63: _hi_onEvent(onSound,SinCos[1,_Tik]); |17: end;|40: delete(_Text,1,1); |13: end|37: else _hi_onEvent(onSound,0);|15: end; |7: end|7: else|9: begin|21: if _Sound1 then|12: begin|28: if _Tik<=_Len1 then|57: _hi_onEvent(onSound,SinCos[1,_Tik]) |13: else|15: begin|19: _Tik:=0;|26: _Sound1:=false;|26: if _Text<>' then|26: begin |46: if str2int(copy(_Text,1,1))=0 then|18: begin|28: _Sound0:=true;|22: _Tik:=0;|50: _hi_onEvent(onSound,SinCos[0,_Tik]);|16: end|16: else|18: begin|28: _Sound1:=true;|22: _Tik:=0;|63: _hi_onEvent(onSound,SinCos[1,_Tik]); |17: end;|40: delete(_Text,1,1); |13: end|37: else _hi_onEvent(onSound,0);|19: end; |10: end|10: else|12: begin|26: if _Text<>' then|15: begin|46: if str2int(copy(_Text,1,1))=0 then|18: begin|28: _Sound0:=true;|22: _Tik:=0;|50: _hi_onEvent(onSound,SinCos[0,_Tik]);|16: end|16: else|18: begin|28: _Sound1:=true;|22: _Tik:=0;|63: _hi_onEvent(onSound,SinCos[1,_Tik]); |17: end;|40: delete(_Text,1,1); |13: end|38: else _hi_onEvent(onSound,0); |15: end; |8: end;|4:end;|0:|4:end.|
}

карма: 19

0
Ответов: 128
Рейтинг: 1
#10: 2010-03-22 22:58:17 ЛС | профиль | цитата
большое спасибо.как я сожалею ,что не учил в детстве английский язык и информатику.огромное спасибо создателям сайта и проги HiAsm.
карма: 0

0
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)