Size: a a a

2020 April 27

СС

Сиие Сууие in Embedded Group
а умножение?
источник

DA

Dmitry Aloyan in Embedded Group
Dima B
особенно если аппаратной поддержки нет :)
аппартной нет 🙁
источник

СС

Сиие Сууие in Embedded Group
Dmitry Aloyan
аппартной нет 🙁
А если умножить можете проверить сколько займёт?
источник

DB

Dima B in Embedded Group
Сиие Сууие
а умножение?
Умножение тоже непросто, но деление заметно сложнее.
источник

СС

Сиие Сууие in Embedded Group
Dmitry Aloyan
Как вот эта строка может добавлять 300 байт к флешу??
vin.n = adcVal / 45.788617886178862;

делаю для теста
vin.n = adcVal / 1;

и прошивка начинает весить на больше чем 300байт меньше
тогда у меня для вас предложение посчитать 1/х и умножать а не делить
источник

DA

Dmitry Aloyan in Embedded Group
Сиие Сууие
тогда у меня для вас предложение посчитать 1/х и умножать а не делить
не совсем понимаю как должна выглядеть итоговая формула
источник

DB

Dima B in Embedded Group
Сиие Сууие
тогда у меня для вас предложение посчитать 1/х и умножать а не делить
оптимизирующий компилятор должен такие вещи сам делать
источник

СС

Сиие Сууие in Embedded Group
Dmitry Aloyan
не совсем понимаю как должна выглядеть итоговая формула
adcVal * (1/45.788) последнее посчитано на калькуляторе
источник

СС

Сиие Сууие in Embedded Group
Dima B
оптимизирующий компилятор должен такие вещи сам делать
ну это если он оптимизирует, я ж чего и просил проверить
источник

DA

Dmitry Aloyan in Embedded Group
Сиие Сууие
adcVal * (1/45.788) последнее посчитано на калькуляторе
Точно так же 300+ байт. Сейчас еще попробую разделить на калькуляторе и написать итоговую цифру. Вдруг не оптимизирует
источник

DB

Dima B in Embedded Group
вполне может оказаться, что это плавающее умножение занимает 300 байт.
источник

DB

Dima B in Embedded Group
а сколько тогда займет деление - страшно представить.
источник

A

Alexander in Embedded Group
Можно попробовать привести  множитель к дроби, у которой знаменатель является степенью двойки. И деление заменить на сдвиг.
источник

DA

Dmitry Aloyan in Embedded Group
Dima B
а сколько тогда займет деление - страшно представить.
Я проверил. Почти столькоже 🙂
источник

VK

Viacheslav Kaloshin in Embedded Group
А ещё лучше вынести все подобные операции на сторону большого брата
источник

DB

Dima B in Embedded Group
я проверил, avr-gcc при выключенной оптимизации добавляет 220 байт при замене плавающего умножения на плавающее деление.
источник

DA

Dmitry Aloyan in Embedded Group
Viacheslav Kaloshin
А ещё лучше вынести все подобные операции на сторону большого брата
Да я так надеялся оставить обсчет на малом. Что бы просто задавать ему нужно значение напряжения и он там сам подгонял как надо. Ну и читать готовое напряжение
источник

DA

Dmitry Aloyan in Embedded Group
Dima B
я проверил, avr-gcc при выключенной оптимизации добавляет 220 байт при замене плавающего умножения на плавающее деление.
В моем случае, разница деления и умножения 6 байт
источник

VK

Viacheslav Kaloshin in Embedded Group
Dmitry Aloyan
Да я так надеялся оставить обсчет на малом. Что бы просто задавать ему нужно значение напряжения и он там сам подгонял как надо. Ну и читать готовое напряжение
Загони значения в таблицы. Типа 1в = 123 , 2в = 456 и теде. И оперируй уже готовыми значениями. Бегать по таблицам гораздо дешевле
источник

T

Thorn in Embedded Group
научитесь работать с fixed point. для обработки отсчётов с АЦП это идеально
источник