Автор Тема: Цифровая АРУ 0...1  (Прочитано 31880 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #240 : Декабрь 05, 2020, 08:23:42 pm »
Это не вставка, это так выглядит переходный процесс  если точки не в синусе. Это так цепи ЦАПа и входные цепи звуковой платы изображают. Вообщем переходный процесс.
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #241 : Декабрь 05, 2020, 08:25:32 pm »
Будем залазить в предыдущий фрейм, который уже ушел под управления ДМА для выброса этого буфера  в ЦАП. Фрэйм 1024 точек, мне надо залезти с конца точек на 50 или около того. Надеюсь ДМА еще не успеет дойти до этих мест, а то буде коллизия, когда и ДМА и ПРОЦ будут обращаться к одной и тойже ячейке памяти. Неприятная ситуация будет.
« Последнее редактирование: Декабрь 05, 2020, 08:27:59 pm от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн 6Ж2П

  • Hero Member
  • *****
  • Сообщений: 505
Re: Цифровая АРУ 0...1
« Ответ #242 : Декабрь 06, 2020, 01:14:14 am »
Новая АРУ
(вариант 4)
Это язык Си для STM32, насколько понимаю.
А это корректный код Вы вставили для обозрения?

 if (a > 0)nowAgc = max / a;
        else  nowAgc = max / 0.000005f;

нет пробела после условия и далее нет двух пар фигурных скобок

float32_t   почему так записывается тип float ? Зачем там 32_t ?


 

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #243 : Декабрь 06, 2020, 09:02:25 am »
Если один оператор после if или else то {} можно не ставить. float32_t это float  , но такая запись в листинге программы очень хорошо выхватывается на фоне всего.
Код корректный ....это вы так шутите ))) ?
« Последнее редактирование: Декабрь 06, 2020, 09:45:00 am от ra0ahc »
Да да, я знаю, у меня ничего не получится )))

Оффлайн Relayer

  • Hero Member
  • *****
  • Сообщений: 1006
  • UR5FFR
Re: Цифровая АРУ 0...1
« Ответ #244 : Декабрь 06, 2020, 10:18:09 am »
еще короче :)
nowAgc = max / (a > 0? a : 0.000005f);
В любой схеме есть как минимум одна ненужная деталь :)

Оффлайн 6Ж2П

  • Hero Member
  • *****
  • Сообщений: 505
Re: Цифровая АРУ 0...1
« Ответ #245 : Декабрь 06, 2020, 10:20:27 am »
А пробел тоже можно не ставить?
То есть, допустимы оба варианта записи типа с плавающей запятой, один просто float, второй с явным указанием разрядности числа? А float16_t тоже можно применять, как и для целочисленных переменных?
Шуток никаких нет, я спросил у Вас, вместо того, чтобы лезть в среду Си и проверять, это мне надо было комбайн целый запускать, не двумя кликами реализуется.

Оффлайн 6Ж2П

  • Hero Member
  • *****
  • Сообщений: 505
Re: Цифровая АРУ 0...1
« Ответ #246 : Декабрь 06, 2020, 10:24:24 am »
еще короче
ага, для постоянно работающих с Си нормально наверное, а для обучающегося лучше не спешить с сокращениями. Один написал в теле цикла вместо индекса a[i+1]  a[i++], а потом долго искал ошибку.

ПС ra0ahc, давно подумываю тоже попрограммировать STM, но никак не соберусь. Подскажете, если что, для начала в технической части, по отладочным платам, или как они там называются? Один кристалл же никуда не приткнёшь, надо на плате распаянный иметь
« Последнее редактирование: Декабрь 06, 2020, 10:30:20 am от 6Ж2П »

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #247 : Декабрь 06, 2020, 10:56:41 am »
Nucleo H7 - есть ваше всё
Среда разработки от ST у них сейчас неплохая среда.
float16_t не бывает, только float64_t  cr123
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #248 : Декабрь 06, 2020, 11:04:29 am »
if (a)nowAgc = max / a;
else  nowAgc = max / 0.000005f;
и
nowAgc = max /(a?a: 0.000005f);

мне кажется первый будет работать быстрее(на сколько я помню ассемблер там один такт на это условие)...хотя фиг знает
в нашем случаи
nowAgc = max /(a+0.000005f); тоже будет работать и не на что не повлияет. Всеравно потом приводит к 12 битам.
Да да, я знаю, у меня ничего не получится )))

Оффлайн Relayer

  • Hero Member
  • *****
  • Сообщений: 1006
  • UR5FFR
Re: Цифровая АРУ 0...1
« Ответ #249 : Декабрь 06, 2020, 12:07:51 pm »
Одинаково они будут работать. Оптимизаторы в компиляторах давно уже заоптимизированы :)
В любой схеме есть как минимум одна ненужная деталь :)

Оффлайн VA7KL

  • Administrator
  • *****
  • Сообщений: 142
  • ex-VA7FFT
Re: Цифровая АРУ 0...1
« Ответ #250 : Декабрь 06, 2020, 12:14:41 pm »
от ST у них сейчас неплохая среда
Как называется среда что на картинке? А то я запускаю Geany c Ubuntu и компилирую руками.

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #251 : Декабрь 06, 2020, 03:00:05 pm »
CLion от JetBrains
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #252 : Декабрь 06, 2020, 09:02:13 pm »
Просидел еще пару дней ...
Сделал "залаз" в соседний фрейм - однозначно помогло, прям сильно.
Остались "вот такие" фантомы ....убился искать какое событие из вызывает.

Ну в а целом (смотрим на панораму) без этих аномалий уже можно сказать, что это "ОНО"
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #253 : Декабрь 07, 2020, 05:11:46 pm »
НАШЕЛ ГДЕ КОСЯК
 
Вот записи в разных режимах.

Залетов и вылетов в аут не заметил.

https://drive.google.com/drive/folders/1Qnh064SKTlaO3RvhifW4HqcNGI8yzb9P?usp=sharing
Да да, я знаю, у меня ничего не получится )))

Оффлайн ra0ahc

  • Hero Member
  • *****
  • Сообщений: 4872
  • Сергей, RD6AH
Re: Цифровая АРУ 0...1
« Ответ #254 : Декабрь 07, 2020, 05:18:02 pm »
SSB CW
Скорость АРУ - нормальная. Ворота 4дб. Задержка на отпускания 100мс
Да да, я знаю, у меня ничего не получится )))