Перейти к содержанию

jcxz

Свой
  • Публикаций

    5 321
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о jcxz

  • Звание
    Гуру
  • День рождения 01.12.1974

Контакты

  • ICQ
    311337544

Информация

  • Город
    Омск

Посетители профиля

13 494 просмотра профиля
  1. А линкёр у Вас сам по себе решает куда что размещать? Или всё-таки им руководите Вы? Всё это элементарно решается заданием линкёру карты размещения секций в памяти. Ни в одном из этих случаев задание абсолютного адреса размещения не нужно. Вы же переменным в программе не задаёте абсолютных адресов, надеюсь? ;)
  2. Он меняется быстро только для низких частот. Для высоких - меняется мало. Т.е. когда сигнал имеет частоту близкую к Fs/10, то его частота к концу периода может измениться на <= 10%, а когда он имеет частоту около Fs/1000 то его частота на границах периода может отличаться даже в разы (в худшем случае).
  3. Мне не нужно экстраполировать на много отсчётов вперёд. Мне нужно всего 1...2 отсчёта (см. исходное сообщение). А в качестве базы для построения могу использовать много предыдущих сэмплов. Поэтому нужен такой метод, который посмотрев на историю скажем из >= 3 прошлых сэмплов с точностью до +-20% предскажет следующие 1...2 сэмпла. И не потребует слишком много тактов CPU. Все алгоритмы интерполяции заточены именно на интервал "внутри". Я понимаю, что как-то можно их переделать под интервал "вовне", но для кубических и пр. - затрудняюсь это сделать. Для линейной конечно - без проблем. Поэтому и прошу ссылку на описание где это разложено по шагам. В принципе мне достаточно даже не значения через 1...2 сэмпла, а всего лишь знака - с какой стороны от оси Y , будут находиться сэмплы через некоторое время. Но время желательно иметь возможность задать точно, например: через 1.3 Ts.
  4. Это уже что-то из области мифологии. :) Можете привести ссылки на конкретные случаи? Киллера пришлют??? 8-O Так можно мочить любого абонента, стоящего у базовой станции с телефоном. Он ведь тоже часть энергии в себя принимает.
  5. Я работаю с WDT. Именно с WDT (т.е. - внешним). А вот Вы - без WDT. Так как внутренний WDT как раз бессилен против космических частиц и пр. случайных внешних явлений. Он пригоден разве что для оживления девайса после программных багов. Надеюсь не нужно объяснять - почему. Так замените здесь WDT на обычный таймер. Или контролируйте время в уже тикающем ISR Systick.
  6. Ну хорошо - сделали Фурье. А дальше что? Как следующий сэмпл предсказать? Фурье не подходит ещё по причине больших вычислительных расходов (как писал в исходном сообщении). Ресурсов есть - менее 4800 тактов Cortex-M4F на один сэмпл. Даже лучше ещё эту цифру умножить на ~0.7. Или даже на 0.7 * 0.5
  7. Фурье не поможет - частота сигнала может сильно меняться. За период может измениться в разы. см.выше.
  8. Он только близок к синусоидальному. Часто именно синусоидальный. Но в ряде случаев может иметь синусоидальность на очень ограниченном интервале сэмплов: на высокой частоте (близкой к 10 сэмплам на период) - это может быть даже 1-2 периода сигнала, но на низких частотах за один период частота синусоиды может даже в несколько раз измениться. Т.е. - частота синусоиды может плавно нарастать, и если скажем при 0 градусов она была равна F, то при 359 градусов этого же периода она уже может быть равна F*3. Частота сигнала меняется в очень широких пределах: от почти 0 до 1/10 Fs. Поэтому я и писал, что нужен метод экстраполяции по последним нескольким сэмплам. Пускай даже не очень точный.
  9. Я ещё в изначальном сообщении писал, что линейная экстраполяция меня не интересует. Из-за характера сигнала. Я знаю что "можно". Вопрос был о конкретном алгоритме (ссылке на его описание или исходник реализации).
  10. Это оно самое и есть. Скорее - "не разрешать". Потому что он по дефолту - запрещён.
  11. NMI - немаскируемо средствами NVIC. Сам источник NMI никто не мешает конфигурить (разрешать, запрещать, назначать источник(-и) и т.п.). Посмотрите периферию любого МК на Cortex-M где есть NMI.
  12. Я тоже сразу обратил на это внимание. :) Думаю главное - закапывать не глубже, а ближе к узлу сотовой связи. ;) Ещё думаю можно попробовать окапываться под проводами ЛЭП. Только там диапазон частот несколько иной. Но как источник мощности - это более надёжно.
  13. Имеется последовательность из N отсчётов некоей величины. Sample time - const. Величина изменяется по закону близкому к синусоидальному. Необходимо вычислить ближайшие следующие 1...2 отсчёта последовательности на основании имеющихся N значений. Подскажите - какой алгоритм экстраполяции здесь можно использовать? Желательно не сильно требовательный по ресурсам (выполняться должен в МК с довольно большой частотой отсчётов). В инете почти везде, где идёт речь об экстраполяции, говорят о линейной экстраполяции. Но линейная тут не подходит, так как период сигнала может быть очень малым, он по ТЗ >= 10 отсчётам. Да и о линейной я бы не спрашивал - там всё просто. Может кто подскажет - что именно нужно искать? Или даст ссылку на описание алгоритма или исходники его реализующие? Догадываюсь, что можно прогнать сигнал через ФНЧ, дополнив его в хвосте нулями и получить желаемые отсчёты. Но тогда непонятно как учесть фазовую задержку, которая получится? Ведь частота сигнала заранее неизвестна и может изменяться в широких пределах.
  14. Видимо ТС-у нужен понижающе-повышающий преобразователь. :) Китайса делали: https://ru.aliexpress.com/item/DC-DC-Auto-Boost-Buck-adjustable-step-down-Converter-XL6009-Module-Solar-Voltage/32668492891.html?spm=a2g0v.10010108.1000016/B.1.70e2410dMjhqST&isOrigTitle=true
  15. Скачиваем мануал на W7500P, смотрим: На векторе NMI сидит прерывание от WDT. Находим регистр Watchdog timer Control Register(WDTControl). Находим в нём поле: IEN – Interrupt Enable. 0 : Disable the counter and the interrupt. 1 : Enable the counter and the interrupt. Reloads the counter from the value in WDTLoad, after previously being disabled. Видим, что значение регистра после reset == 0x0000_0000. Видимо единичку в младший бит папа записал.... ;) PS: На всю процедуру скачивания мануала и поиска в нём потребовалось около 5 минут. Много меньше чем для написания в форум....