Comments 19
Вообще то у меня не осталось ни умножений, ни делений, а только суммы и сдвиги на 16 — это и была цель, и она достигнута. Расчеты осуществляются по рекуррентным соотношениям, которые с точки зрения производительности предпочтительнее рекурсии.
Если Вы действительно считаете, что вычисления по Вашей методике будут осуществляться быстрее (что в принципе не исключено, поскольку у вас 3 сложения 16 битных чисел против 2 сложений 32х у меня, но 3 сдвига 16х на 1 бит выполняются дольше, чем один на 16 бит для 32х, надо аккуратно считать), то попробуйте программку с этой методикой расчета том же сайте и посмотрим на результаты. Мне кажется, что изменение порядка операндов в рекурсивных вызовах сожрет возможную экономию и даже больше.
Но главное — даже не в этом, а в том, что Вы неправильно трактуете задачу — для построения графиков есть еще более быстрые схемы, но нам нужно именно последовательное прохождение по кривой.
Ну а особо знающие с 27 порядком пусть попытаются объяснить менее знающим, какие именно преимущества дает увеличение порядка КБ выше второго.
PS. А что такое plot(B) — или В — это пара координат?
Если Вы действительно считаете, что вычисления по Вашей методике будут осуществляться быстрее (что в принципе не исключено, поскольку у вас 3 сложения 16 битных чисел против 2 сложений 32х у меня, но 3 сдвига 16х на 1 бит выполняются дольше, чем один на 16 бит для 32х, надо аккуратно считать), то попробуйте программку с этой методикой расчета том же сайте и посмотрим на результаты. Мне кажется, что изменение порядка операндов в рекурсивных вызовах сожрет возможную экономию и даже больше.
Но главное — даже не в этом, а в том, что Вы неправильно трактуете задачу — для построения графиков есть еще более быстрые схемы, но нам нужно именно последовательное прохождение по кривой.
Ну а особо знающие с 27 порядком пусть попытаются объяснить менее знающим, какие именно преимущества дает увеличение порядка КБ выше второго.
PS. А что такое plot(B) — или В — это пара координат?
Когда я вижу заголовок
быстродействии Ардуиноя жду сравнения времени выполнения задачи на ардуиноIDE vs AtmelStudio, CVAVR или вообще WMlab. Разочарован.
Кроме спортивного интереса, какая необходимость пытаться выжимать из платформы Ардуино максимум? Эти 8-битные микроконтроллеры стоят дороже 32-битных STM, на которых надо решать куда более серьёзные задачи, чтобы упереться в производительность. И это выжимание делает код более сложным и менее поддерживаемым, а разработку длительнее.
А методический аспект? Неужели не важно научиться оптимизировать свои проекты хотя бы на том элементарном уровне, что я описываю в своих постах?
Вчера прочитал новость о 8битных МК от Тайваньского производителя по 5 центов за штуку — и как Вы с ними будете работать, освоив только 32х разрядные и пренебрегая оптимизацией?
Вчера прочитал новость о 8битных МК от Тайваньского производителя по 5 центов за штуку — и как Вы с ними будете работать, освоив только 32х разрядные и пренебрегая оптимизацией?
Видел у EEVBlog. Они даже по 3 цента. А в неочень крупных партиях даже дешевле.
Если работать с ними, то такие оптимизации действительно становятся важными. Но это условие, которые может стоять только у некоторых разработчиков. И тут понятно зачем — абсолютное превосходство по стоимости.
А вот делать это на 8-битных микроконтроллерах, которые дороже, чем 32-битные, я вижу смысл только в образовательных целях или, когда, по каким-то причинам мы работаем с легаси или жёсткими требованиями заказчика.
Если работать с ними, то такие оптимизации действительно становятся важными. Но это условие, которые может стоять только у некоторых разработчиков. И тут понятно зачем — абсолютное превосходство по стоимости.
А вот делать это на 8-битных микроконтроллерах, которые дороже, чем 32-битные, я вижу смысл только в образовательных целях или, когда, по каким-то причинам мы работаем с легаси или жёсткими требованиями заказчика.
Ну я заказал себе 10 штук за 0,57 $, поэтому такую цену и указываю. И неужели такое ценовое преимущество можно игнорировать?
Конечно же, в образовательных, я для этого и пишу.
Конечно же, в образовательных, я для этого и пишу.
Заказали Padauk? И, есть ли у вас программатор к ним?
И неужели такое ценовое преимущество можно игнорировать?И да, и нет, зависит от ваших задач. Они одноразово программируемые. Причём, можно заказать уже с вашей прошивкой. В крупных партиях это очень выгодное решение.
Я надеюсь на реверс-инжиниринг алгоритма программирования, этим вроде уже занимаются.
Конкретной задачи у меня для них нет, но жалко упустить такой случай — 10 МК за 0.57$, чисто для развлечения. Если бы была задача, то программатор за 100$ отбивается на 500 (совсем небольшой тираж) экземплярах (0,25-0,05)*500=100
Конкретной задачи у меня для них нет, но жалко упустить такой случай — 10 МК за 0.57$, чисто для развлечения. Если бы была задача, то программатор за 100$ отбивается на 500 (совсем небольшой тираж) экземплярах (0,25-0,05)*500=100
Вы не учитываете, что во время когда 32-х битных контроллеров от ST физически не существовало а их ARM аналоги стоили не в три раза дешевле а в 10 раз дороже на 8-ми битных AVR были созданы некие устройства (и их не мало) — написан некий рабочий код (его тоже не мало) все это было продано (много и успешно). И задачи их развития поддержки и расширения функционала (без смены процессора и выпуска новых устройств) за это время никуда не делись. И решатся они могут зачастую только лишь за счет оптимизации тем или иным способом.
Естественно в новых разработках это никому не нужно.
Естественно в новых разработках это никому не нужно.
о, кривые безье, сорри что слегка не по теме, но не подскажите как сделать гладкую непрерывныю кривую из двух кривых безье?
В общем виде эта задача не решается, не все заданные КБ можно подшить одну с другой в принципе.
Если стоит задача в конце первой КБ гладко начать вторую, которая прибежит в новую конечную и надо найти для второй мнимый фокус, то выражаем производную второй КБ в точке начала через неизвестные координаты фокуса, приравниваем производной первой КБ в конце и решаем — должно получиться линейное уравнение, но таких точек буде бесконечно много на прямой — какую выбрать? Или я не понял вопроса?
Может, проще сразу построить КБ более высокого порядка по заданным точкам?
Если стоит задача в конце первой КБ гладко начать вторую, которая прибежит в новую конечную и надо найти для второй мнимый фокус, то выражаем производную второй КБ в точке начала через неизвестные координаты фокуса, приравниваем производной первой КБ в конце и решаем — должно получиться линейное уравнение, но таких точек буде бесконечно много на прямой — какую выбрать? Или я не понял вопроса?
Может, проще сразу построить КБ более высокого порядка по заданным точкам?
Sign up to leave a comment.
К вопросу о кривых Безье и быстродействии Ардуино, часть вторая