
Кирилл Gessor
01.08.2017
05:30:01

Danil
01.08.2017
08:43:34

Aleksander
01.08.2017
08:47:30
А там разве не 1 мгц частота?
По теореме Котельникова, частота дискретизации выше частоты последней гармоники, умноженнной на 2, не нужна. Предел слышимости где-то около 20 кГц, так что там 44 кГц.

Dr
01.08.2017
08:48:49

Google

Aleksander
01.08.2017
08:49:49
Ну для шим-цап - это может быть, да

Danil
01.08.2017
08:50:27

Aleksander
01.08.2017
08:50:44
Ну ок. Короче, это возможно.

Artem
01.08.2017
08:53:15
я не смог на stm32f4 настроить частоту 44, только 48кгц. Там не получается делители так выставить
для таймера

Danil
01.08.2017
08:54:13
для таймера
Поставь в 10 раз быстрее, и в таймере счетчик

Artem
01.08.2017
08:54:41
попробуй посчитай. Я точной формулы не помню, но 44100гц там никак не выходило при моей частоте камня
можно получить примерно, но не точно. А 48кгц точно получается

Danil
01.08.2017
08:55:49
Любую частоту можно поставить, ниже частоты таймера, но дергать цап в ручную
Какая частота камня?

Artem
01.08.2017
08:56:30
168

Danil
01.08.2017
08:56:44
Ее можно менять? Pll

Artem
01.08.2017
08:57:05
А дык ты еще и не настраивал но с мнением набежал?

Google

Artem
01.08.2017
08:57:09
можно

Danil
01.08.2017
08:58:13
Я настраивал, чего же ты кусакшься, я тебе один вариант предложил, над вторым думаю

Artem
01.08.2017
08:58:17
ща попробую найти формулу
там хоть 10 хоть сколько делай

Danil
01.08.2017
09:00:18
Делим на 168 от мегагерца проще плесать, но дергать уже тригер вручную, дай посчитать

Artem
01.08.2017
09:00:58
посчитай
опять же ты не 168 делишь
для примера TIM6 висит на APB1
от частоты шины и считай
TIM6_TimeBase.TIM_Period = 1;
TIM6_TimeBase.TIM_Prescaler = 875 - 1;
TIM6_TimeBase.TIM_ClockDivision = 0;
TIM6_TimeBase.TIM_CounterMode = TIM_CounterMode_Up;
у меня вот так получилось. Это для частоты 48кгц

Danil
01.08.2017
09:02:27
Я в таймере счетчик завел
В прерывании,

Artem
01.08.2017
09:04:25
не очень понимаю чем оно принципиально отличается от периода. Ну да ладно. Вообще у stm32f4 есть специальная тема для генерации стандартных частот дескритизации, как я понимаю. Для внешних DAC
PLLI2S
http://www.st.com/content/ccc/resource/technical/document/application_note/2a/3d/ea/2a/97/4a/4a/96/DM00039457.pdf/files/DM00039457.pdf/jcr:content/translations/en.DM00039457.pdf 2.2.3

Dolphin
01.08.2017
09:14:31
ну будет у тебя 44099

Artem
01.08.2017
09:15:51
точность не? Сэмплировано было с частотой 44100 и надо воспроизводить с такой же. Но есть это не критично то похуй конечно

Google

Dolphin
01.08.2017
09:17:22
ни по скорости ни по тону

Artem
01.08.2017
09:18:03
не замечу да. Но в моем кейсе 48кгц было норм. Я сэмплы сам делал

Dolphin
01.08.2017
09:21:33
Ресемплинг делай

Artem
01.08.2017
09:22:52
да мне ничего этого не надо. я уже все сделал. Кодирую сэмплы в 48кгц и воспроизвожу с такой же частотой. Тут спор был о том можно ли 44.1 получить

Dolphin
01.08.2017
09:24:55
Точно нельзя, но это и не нужно. Спор бессмысленный

Danil
01.08.2017
09:26:46
Но я не прав :D

Artem
01.08.2017
09:27:14
лол)

Dmitry
01.08.2017
11:20:00
а поясните за Touch sensing controller в STM
в кубике я включаю канал TSC->GroupN->Gn_IOn и через 10к цепляю кнопку
потом выбираю следующий канал и делаю из него Shield, который подключаю к экрану вокруг кнопок
правильно?
и вопросы
* а зачем нужен Sampling и SYNC?
* куда цеплять конденсаторы?

kiltum
01.08.2017
11:22:02

Dmitry
01.08.2017
11:57:23
м… конфигурирую ногу как Sampling и туда вешаю конденсаторы?
дизайн похож на рабочий? D=25mm

Dmitry
01.08.2017
11:57:25

Pavel
01.08.2017
14:10:38

Danil
01.08.2017
14:25:33
вообще состояние RAM после сброса не гарантируется, так что шансы получить тыкву велики + большинство компиляторов в ключают в стартовые скрипты заполнение памяти 0 для надежности
как минимум ГЦЦ для АВР и СТМ32 так делал

Admin
ERROR: S client not available

LexsZero
01.08.2017
14:30:37
не компиляторов, а стартапов
можно в кастомном стартапе попросить что-то не чистить, или в линк-скрипте прописать область, в которую обычный стартап не полезет

Pavel
01.08.2017
14:44:23

Google

Danil
01.08.2017
15:28:14
ну у стм32 есть LD скрипты, а у авр это впилено в компилятор как я понял

Serg
01.08.2017
16:24:43
вот так пробовал
__no_init __root uint32_t gMemRegs[20];
но это же надо еще адрес абсолютный как то указать?

IDDQD
01.08.2017
19:29:58
Причем тут стм тридцать два?

Dolphin
01.08.2017
19:53:06
смысл - но инит не стандарт, и может интерпретироваться компиллером иначе

Serg
01.08.2017
19:59:50
проверил, не инитится после ресета
остается значение записаное до ресета
собственно это все ради "чистого" запуска основной прошивки из бутлоадера
когда надо запустить основную выставляю в этой no_init переменной значение 1 и делаю NVIC_SystemReset();
а в самом начале проверяю значение этой no_iunit переменной и если 1 - сразу jumpToApplication()
переменная "подписана" crc

Dolphin
01.08.2017
20:04:36
алё, не так работает

Serg
01.08.2017
20:04:51
почему?

Dolphin
01.08.2017
20:04:59
инитишь, ребутишь, читаешь (без реинита после рестарта)

Serg
01.08.2017
20:05:23
ну так и есть
инитить что?

Google

Dolphin
01.08.2017
20:06:14
я же говорю - no init - не стандарт, и одному богу известно, как компилятор это реализует.
создай указатель на начало области рамы и читай после ребута