|
|
|
|
можно упомянуть о специфике генератора опорной частоты в RLC-2 частота генерируется на цифровом выводе микроконтроллера, после чего с помощью дорогого и сложного фильтра получается синусоида очищенная от высших гармоник.Однако в сигнал с цифрового выхода походят и помехи с шины питания микроконтроллера, которые могут быть значительно ниже частоты фильтра(10кГц и ниже) и практически не фильтруются - учитывая не синхронность каналов АЦП и "стробоскопический" его характер - это может вносить дополнительную ошибку в результаты измерения и ужесточает требования к питанию микроконтроллера. "Компьютерный" ЦАП этой "особенности" не имеет изначально. |
|
|
http://kilobyte.com.ua/~mehalycha/Programs/LCtransf.jpg Это про волновое сопротивление трансформатора. Есть ещё у меня две других книжки, где постоянно упоминают об этом сопротивлении. В интернете наверняка ещё больше можно найти... Наступил момент для динамичеcкого выделения памяти. Я не знаю наперёд, сколько какой пользователь LCmetrом захочет применять частот и эталонных сопротивлений. Память нужно динамически выделять и удалять, а это один из самых каверзных моментов в C++. Есть целые книжки по этому вопросу. А у меня в книжках всё просто и кратко и мало на эту тему. Поэтому я буду идти от простого к сложному. Сделаю сначала фиксированное количество эталонных сопротивлений, штук двадцать, например. И у каждого сопротивления двадцать разных применяемых частот. Четыре сотни вариантов. В матлабе я меньше десяти сопротивлений применяю. В RLC-2 три частоты и одно сопротивление и ничего, пользователям хватает. И, наверное, сделаю один режим калибровки без запоминания на диске (на время работы программы) - одно сопротивление и две частоты к нему. Сопротивление любое и частоты любые до 32768/2Гц. |
|
|
Михалыч А: и одно сопротивление там 4 сопротивления и выбор коэфициента усиления - т.е. получается 8 диапазонов. Диапазон, R range, Ку для тока, Ку для напряжения 0 100 Ом 1 100 1 100 Ом 1 10 2 100 Ом 1 1 3 1к 1 1 4 10к 1 1 5 100к 1 1 6 100к 10 1 7 100к 100 1 |
|
|
Окей, виноват, просто мало интересовался этим прибором и совсем не пользовался. |
|
|
Михалыч А: Память нужно динамически выделять и удалять Вы что, программируете под платформу с 640 КБ на борту?
|
|
|
Дело не в платформе, не в размере памяти. Дело в четком знании момента, когда динамическую память нужно освободить. Отладчик ругается не по детски. А в моих книжках только и сказано, что обязательно нужно память освободить. Если размер массива на перёд не известен, то два пути - делать огромный массив, или по частям память динамически добавлять. |
|
|
Михалыч А погуглите по ключевым словам malloc и free. Это динамическое выделение и освобождение памяти в C. Там же найдёте примеры как их пользовать. |
|
|
Михалыч А: Если размер массива на перёд не известен Михалыч А, не заморачивайтесь и определяйте массив с запасом! Случай не тот, когда надо экономить (если только проект не в целях обучения). |
|
|
Заработала запись параллельно с воспроизведением. Сразу получился примитивный осциллограф на звуковой карте. Неплохая зрительная проверка записи. Можно взять фото любого девайса с экраном/монитором, вставить это фото в LCmetr и на этом девайсе показывать две параллельных синусоиды. Программировать ничего не надо, только LCmetr в размере увеличится. Если никому картинка девайса не нужна, будет две синусоиды на голом, белом окне представления. Можно включить поддержку самодельного USB-осциллографа... Определился (пока только в мыслях) с динамической памятью. У меня эталонное сопротивление - это структура с двумя полями. Одно поле - массив из частот, второе поле - массив из импедансов. Количество структур наперёд неизвестно, в каждой структуре размеры массивов наперёд неизвестны. Ничего не известно! Но хранить на диске эти структуры обязательно, иначе люди матюкаться будут. И решил я в качестве динамической памяти использовать файл на диске, потому что этот файл компилятором и отладчиком не проверяется. И подряд можно записывать сколько угодно бла-бла-бла и никакой ошибки не будет. Конечно, сначала будет LCmetr без записи на диск, а потом база эталонных сопротивлений будет ограничена только размером диска. |
|
|
1 - сделать несколько, например 8, кнопок выбора предустановленных значений эталонного сопротивления - типа переключателя диапазонов. для оперативного переключения диапазонов можно использовать не только мышку, но и клавиши - например, "стрелки"(на клавиатуре). 2 - сделать отображение реального пикового значения считанного АЦП(в десятичном и процентах от максимума) - позволит более "наглядно" делать выбор эталонного сопротивления(чтобы 50% было на детали и 50% на эталонном резисторе) и видеть реальную возможную точность измерения(кол-во задействованных разрядов АЦП). - поскольку в измерителе отсутствует автоматический выбор пределов измерения. |
|
|
|
|