• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Микроконтроллеры PIC

Да, АЦП меряет по очереди 4 канала. Поэтому частота семплирования на канал всего 12.5кГц, но этого думаю достаточно. Параметры меняются куда медленнее, чем их успевает промерять АЦП. Ведь преобразователь самостоятельно стабилизирует, МК его лишь регулирует. Да и нагрузка и источник питания относительно стабильные...

Какой именно уход в минус? Я не могу представить тут такую ситуацию. Переполнение да, тогда будет держать максимально возможное значение. При минусе скорее всего будет сбрасываться в ноль, но это по месту надо смотреть. Возможно там что-то другое будет предпочтительнее...
 
У меня есть предложение по четырем значениям вычислять скорость и ускорение.
Тогда регулятор будет работать еще точнее.
Поясню - можно будет с большой точностью узнать, что намеряет АЦП на следующем отсчете, и выдать соответствующую поправку.
 
По скорости уже реализовано. По ускорению думаю лишнее. Точность от этого только пострадает. Там ведь шум будет. Каждый результат будет отклонятся фиг знает куда и фиг знает насколько от реальной величины. Этому мудрёному алгоритму такое может не понравится, и недостатков будет больше чем преимуществ...

Но на будущее, как именно предлагаешь организовать анализ ускорения? Опиши алгоритм. Вот есть число, и есть несколько предыдущих чисел. Нужно получить число уже с учётом всех поправок, при этом не допустить ошибок переполнения, минуса и т.п. Как это реализуется?
 
Что касается погрешностей - чем больше точек известно, тем меньше погрешность измерения влияет на результат.

Сначала несколько комментариев по тому алгоритму, который уже есть.
Обозначим три последовательных измерения буквами A,B,С.

Примененный алгоритм выглядит как C=2B-A.
(Чтобы узнать будущее значение, удваиваем текущее и вычитаем предыдущее).

Есть вот такая формула (A-2B+C)/h=U``.
Эта формула выражает вторую производную функции во второй точке(в этой точке мы получаем значение B). Из нее как раз и получается имеющийся алгоритм: если положить, что вторая производная равна 0, то как раз и получается С=2B-A.
То есть данный алгоритм будет хорошо работать при линейном характере изменения функции U.

Когда в нем будет уход в минус? При резком броске вниз, т.е когда A>>B, получим уход.

Теперь рассмотрим такую задачу: есть несколько семплов некой величины, нужно узнать последующие.
Задача носит название "задача об экстраполяции функции".
Вкратце, идея состоит в том, чтобы по известным точкам построить некую функцию, а затем вычислить ее значение в неизвестной точке.

Хорошо эта задача решается, если приблизительно известен характер изменения функции, или ее производная.

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

По поводу вычислительного процесса - если обеспечивается запас по точности и известен интервал входных данных, всегда можно гарантировать отсутствие переполнений.

При необходимости можно составить детальный алгоритм.
 
Думаю всё это лишнее. Одна только операция деления жрёт сотни тактов, за более сложные алгоритмы уже молчу. Хватит там и примитива. Линейные системы вообще без этих "гаданий" отлично работают и никого своими бросками на динамических нагрузках не беспокоят. А у меня вообще нагрузка почти статична (температурный дрейф и всё)...
 
При хорошей численной реализации, деление заменяется на умножение.
 
Всем Привет!, Собираю "MIDI pedal switch controller" на PIC16F877 http://www.electronics.dit.ie/staff....dal.htm
http://s014.radikal.ru/i329/1501/d4/7f3fb60ef405.png фото 1
(прошивка .ASM в архиве. "1")
В схеме есть только MIDI OUT, но нет MIDI IN, а он нужен...


Но есть и другая схема "MIDI channel changer" , то-же на PIC16F877 находящаяся на этом-же сайте http://www.electronics.dit.ie/staff....ger.htm
http://s017.radikal.ru/i430/1501/23/e372e27629dc.png фото 2
(прошивка .ASM в архиве. "2")
В ней есть MIDI IN


Можно ли из второго кода прошивки вырезать кусок кода (касаемо MIDI IN) и вставить его в первый код прошивки???? Т.е получить "MIDI PEDAL" с OUT и IN...

Схема будет иметь такой вид (MIDI IN к 26 ноге МК)
http://s50.radikal.ru/i130/1501/de/408b0012c9d0.png фото 3

помогите пожалуйста....

Архив .rar с прошивкой прикрепил
 

Вложения

Назад
Сверху