Создание собственной системы стабилизации
Так и обводи белый символ чёрным контуром…
так то нужна отдельная зарисовка теней ( Если горизонтали затенить легко аппаратно, то вертикали не…
Это схема, если нужно, скину файлик с инициализацией таймеров и функциями вывода графики/текста…
Поздравляю, вы почти близки к результату. Однако ж пока не наступили на грабли, на которые наступил я в первой версии своего АП.
Я как бы не знаю как реализован микшер аналоговый, но попробуйте зажечь самый первый пиксел в первой строке кадра и последний пиксел во всех строках.
Есть еще один момент, который может подпортить всю малину, и который надо решать, а именно - рисовать в момент развертки кадра, особенно, если таки решите делать тень вторым каналом (у меня это именно так), по хорошему не получится. То есть, швыряние пикселов в видеобуфер абы когда приведет к неприятному морганию картинки. Этот эффект можно наблюдать на Векторе. Поэтому либо вы полностью новый кадр зарисовываете во время обратного хода кадровой развертки, либо имеете два буфера под каждый канал SPI, чтобы быть на 100% независимым от прерываний. ОСД с наполненной картинкой, зарисовать в период кадрового импульса может не получиться, если EKF крутится 1000 раз в секунду и все остальное требует немедленных реакций. У меня это не получилось в первой версии АП и там пришлось иметь 4 буфера в памяти. В новой версии, я уже был умнее и по максимуму все внешние функции были переложены на возможности аппаратуры. Например, были пересмотрены таймеры, которые вяжутся в каскады внутренними коммутациями, а не внешними. Не каждый таймер может формировать прерывание под АЦП и т.д. ЦАПЫ мешаются с ножками, которые требуются под SPI, а еще градации яркости хочется, а ЦАП каналов всего только два, один из которых звук, а второй перекрывает SPI CLK. Вообщем вот в новой версии All-in-One, которую я буду в этом сезоне испытывать мне пришлось полностью перелопатить схему аппаратуры и архитектуру софта. И только сейчас вот у меня на руках есть опытный образец, который реально успевает обслуживать и сервы, и радиомодуль, и блютуз, и ЮСБ и SBUS и сервохабы, и кучу АЦП каналов, и плотное ОСД в межкадровке зарисовать, и EKF крутить на частоте гироскопа. Я вот это все к тому, чтобы локальная победа над ОСД не остановила на пути пересмотра и переработки кода Арду под ваш контроллер.
Успехов 😃 !
P.S. Посмотрел вашу схемку пристальнее. Все ж таки мне кажется перебор с внешними элементами. Если изучить ДШ, то можно найти способ получить тактирование SPI подвязанное под нужные фазы синхры и без внешней обвязки а только путем замыкания пары правильных ножек на микроконтроллере. Есть еще над чем поработать 😉
близки к результату.
Результат уже есть - всё работает…
швыряние пикселов в видеобуфер абы когда приведет к неприятному морганию картинки.
Александр, вывод у меня полностью аппаратный, а швыряние пикселов - всего лишь операция записи в память, поэтому - чего бы не делал контроллер в основном цикле или в прерываниях, на качество картинки никак не сказывается…
попробуйте зажечь самый первый пиксел в первой строке кадра и последний пиксел во всех строках
Чтоб избежать неприятностей, надо просто “дизаблить” SPI в конце вывода последнего байта строки, иначе последний единичный бит “затирает” синхру основного видео (он остается на ноге до следующего синхроимпульса)…
Если изучить ДШ, то можно найти способ получить тактирование SPI подвязанное под нужные фазы синхры и без внешней обвязки а только путем замыкания пары правильных ножек на микроконтроллере.
Для достижения цели пришлось не только изучить наконец ДШ (😃) но и купить за 20 тыр. нормальный осциллограф, но избавиться от внешней логики не удалось (мне, во всяком случае), STM конечно мощщь, но тут он сдулся…
если получится у Вас буду только рад…
Чтоб избежать неприятностей, надо просто “дизаблить” SPI в конце вывода последнего байта строки
А как аппаратно задисэйблить SPI интерфейс в нужное время?
если получится у Вас буду только рад…
Так вроде уже давно, как все получилось 😉
А как аппаратно задисэйблить SPI интерфейс в нужное время?
Нога <NSS> режим HARD… и всё , я у себя не стал задействовать, чтоб оставить DAC вывод для говорилки, и ограничил программно вывод крайних пикселей, что тоже не проблема…
уже давно, как все получилось
Тоже полностью аппаратный ??
чтоб оставить DAC вывод для говорилки
вот это как раз то, о чем я говорил. 😃
Да, можно наверно NSS к VCC поднимать, можно попробовать.
Тоже полностью аппаратный ??
Да, полностью. Вы, наверно, не просматриваете самолетные ветки (собственно как и я коптерные) 😃 FlyBrain
Вы, наверно, не просматриваете самолетные ветки
Во… переберусь к Вам…
Эх, подсказл бы я вам как развязать вибрации от ваших датчиков, да вы ведь китайцам всё разболтаете 😃
Эх, подсказл бы я вам как развязать вибрации от ваших датчиков, да вы ведь китайцам всё разболтаете
Видимо “бомба” очередная (?)…, тогда хоть как то результат эдакой развязки покажите (не вдаваясь в секрет), а то как то - “ни о чём”…
Видимо “бомба” очередная (?)…
да нет, взрывопасные предметы тут ни при чём. 😃
Теория механических колебаний и борьба с акустическими шумами в одном лице 😃
Теория механических колебаний и борьба с акустическими шумами в одном лице
Ну допустим,… а разультат то как посмотреть ? (повторяюсь), к чему весь этот АНОНС ? (был тут посетитель который обещал, “нелиненую логику” применить для управления, но как то исчез…, видимо не получилось)
не-не, это не анонс, что вы, просто полистал вашу тему, увидел одну, очень близкую к правде, мысль у топикстартера, но рука не поднимается указать.
Я построил всего один квадр из комплектухи и двух алюминиевых стержней п-образного профиля и никаких проблем не испытал с вибрацией СРАЗУ, от слова совсем.
Хотя всё там на изоленте и скрутках 😃
Квадры потеряли просто фокус внимания мой - есть новая тема.
Я построил всего один квадр из комплектухи и двух алюминиевых стержней п-образного профиля и никаких проблем не испытал с вибрацией СРАЗУ
Не факт, что это из-за “теории борьбы…”, такое просто бывает (и часто) …, хотя раз Ваш метод секретный, то как бы и порассуждать не получается…
Такое бывает именно у тех, у кого “собралось” случайно в соответствие с теорией. В общем направление есть.
Пощупал новый кортекс, шустрая штука)))
double a, b, c;
for(int i = 0; i < 1000000; i++)
{
c = a * b;
}
выполняется за 60 мс.
Теперь можно все в даблах считать ))))
Пощупал новый кортекс
Что за новый кортекс?
выполняется за 60 мс
Оптимизация при сборке была включена или выключена?
Теперь можно все в даблах считать
Это хорошо конечно, но мне например, пока не понятно где востребована такая повышенная точность, уж больно источники “сырых” данных неточные чтоб их в даблах обсчитывать… (приведите пример)
Что за новый кортекс?
M7 по всей видимости…
Это хорошо конечно, но мне например, пока не понятно где востребована такая повышенная точность, уж больно источники “сырых” данных неточные чтоб их в даблах обсчитывать… (приведите пример)
например барометр ms5611
например барометр ms5611
Сергей, а по моему без всяких даблов, он обсчитывается с физически предельной для него точностью, не? , а повышать разрядность шумов не вижу смысла…
Что за новый кортекс?
Оптимизация при сборке была включена или выключена?
кортекс-М7
Оптимизация включена, без оптимизации что-то лишнее добавляется, а так с = а * b выполняется за 6 тактов, дальше зависит от скорости флеша, шин и всяких кэшей
Это хорошо конечно, но мне например, пока не понятно где востребована такая повышенная точность, уж больно источники “сырых” данных неточные чтоб их в даблах обсчитывать… (приведите пример)
если есть аппаратная поддержка двойной точности то почему бы ее не использовать, задачу всегда можно найти))).
повышать разрядность шумов не вижу смысла…
ну как бы так:
const double T1 = 15.0 + 273.15; /* temperature at base height in Kelvin */
const double a = -6.5 / 1000; /* temperature gradient in degrees per metre */
const double g = 9.80665; /* gravity constant in m/s/s */
const double R = 287.05; /* ideal gas constant in J/kg/K */