Свежие обсуждения
Измерения

LC-метр из звуковой карты

1 6 68

DVK: извините, что не по теме... скажите пожалуйста, если собрать схему с Вашей странички, то можно получить шаровую молнию?
И ещё, куда подключается HV+?

 

rial_man
> Можно исходники программы опубликовать?

184 кВ текста... Пока жаба душит просто так отдавать... Больше года писал... Почти как собака на сене...

> вдруг получится 24 бита добавать

24 бита с WAVE_FORMAT_PCM несовместима, а я только с ним работать умею. Это самый прямой формат - тупое конвертирование Integer-ов из буфера во Float. А с другими форматами как-то непрямо работать надо, а как - не знаю..

Левон

> если собрать схему с Вашей странички, то можно получить шаровую молнию?

У меня не получилось, хотя очень хотелось. Предполагаю индуктивность вторички мешает.

> И ещё, куда подключается HV+?

В случае разрядника типа лестницы Якова - к одному из электродов, к другому - земля. В плазменной пушке - к внутреннему электроду (сиреневый провод), а земля к медной монете (красный провод).

 

Ну ладно, буду в Матлаб ковырятся.
Там, правда, тоже 24 бита нельзя получить.

 

DVK: 24 бита с WAVE_FORMAT_PCM
я в своей программе "самописца" использовал 16 битный формат аудио, но возможно там можно и 24 бита использовать. Вот кусок исходного текста инициализации:
==================
.....
BufSize := StrToInt(DataSourceSelectForm.BufferSize.text); { Размер буфера }
Bits16 := true;//CheckBox1.Checked;
with header do begin
wFormatTag := WAVE_FORMAT_PCM;
nChannels := 2; { количество каналов }
nSamplesPerSec := 22050; { частота }
wBitsPerSample := integer(Bits16) * 8 + 8; { 8 / 16 бит }
nBlockAlign := nChannels * (wBitsPerSample div 8 );
nAvgBytesPerSec := nSamplesPerSec * nBlockAlign;
cbSize := 0;
end;
WaveInOpen(Addr(WaveIn), WAVE_MAPPER, addr(header), Form1.Handle, 0, CALLBACK_WINDOW);
BufLen := header.nBlockAlign * BufSize;
hBuf := GlobalAlloc(GMEM_MOVEABLE and GMEM_SHARE, BufLen);
Buf := GlobalLock(hBuf);
with BufHead do begin
lpData := Buf;
dwBufferLength := BufLen;
dwFlags := WHDR_BEGINLOOP;
end;
WaveInPrepareHeader(WaveIn, Addr(BufHead), sizeof(BufHead));
WaveInAddBuffer(WaveIn, addr(BufHead), sizeof(BufHead));
// GetMem(p, BufSize * sizeof(TPoint));
stop := true;
WaveInStart(WaveIn);
.....
===============

 

Сергей К
У вас тоже
wFormatTag := WAVE_FORMAT_PCM;
Это стандартный вариант, с небольшими видоизменениями его можно найти везде в инете. И у меня нечто похожее. Действительно, никто не запрещает записать wBitsPerSample := 24, например, только это не работает с WAVE_FORMAT_PCM. Я тоже сначала удивлялся - как так, я точно знаю, что карта 24 бит, пишу 24 а она не работает. Потом прочитал где-то, что это ограничение WAVE_FORMAT_PCM до 16 вит только.

Да, кстати
dwFlags := WHDR_BEGINLOOP;
делают только для выходных буферов, для входных это не нужно.
И буферов лучше делать 2 или больше, а то будут разрывы во входящих данных. Один записывается, а другой в это время обрабатывается, а потом меняются местами. А еще лучше 3 - один все время стоит в очереди, чтобы сразу подключиться, когда кончится запись предыдущего.

 

Вот еще есть WAVE_FORMAT_ADPCM вроде больше 16 бит может, только я не нашел как с ним работать.

 

Собственно, если разговор зашел о том, как делать, то есть такой примерчик - kssample, там показано, как работать с 24 битами. А вот прикрепить к нему меню и графики у меня не вышло, не хватило опыта.

Измерение емкостей я передумал на 555 делать - буду, наверное, мостик + диф.усилитель + синхронный детектор пробовать.

 

У меня XP и SB Live и стандартный миксер.
Работает очень нестабильно, т.е. калибруется нормально, но при измерении результат выдаёт недостоверный. В ЛОГе постоянно фигурирует ошибка:

MixerIn: Set volume: Channel: 1, Value: 1: Volume control not found.

причём на любом канале и любом уровне громкости.
В чём тут дело?

69630.txt

 

И у меня вопрос. На звуковой шине HDA Майкрософта эта программа работать будет?

 

Valdemar: Работает очень нестабильно, т.е. калибруется нормально, но при измерении результат выдаёт недостоверный.
А интегрированная есть? У меня тоже на SB Live не захотел работать. Разрешил интегрированную и подключился к ней, а звук на SB, стало возможным пользоваться измерителем и при этом слушать музыку.