@ru_arduino

Страница 3541 из 7737
Quartermaster ★
03.10.2017
20:51:11
а на 20 метров я хз

у меня такой нет

и станции нет

Byte
03.10.2017
20:51:23
Тоже третья.

Google
Quartermaster ★
03.10.2017
20:52:41
тогда нахуй цифра на 20 метрах

Byte
03.10.2017
20:58:25
@Dolphin_Soft, я почти рядом, смотри :-D





Bastad
03.10.2017
21:04:43
спуфиш, ирод?

Spanish Inquisition
03.10.2017
21:05:00
Сегодня выборы! Не забудь выбрать Главного Инквизитора недели. Предварительные результаты голосования: Bastad Green @Greenbastad - 3 ϯ⋅ - 2 Petr B. @vasia_z - 2 El Gato Blanco @victor_chaplinsky - 1 sifun @sifunsifun - 1 Dmitriy Ivanov @dima_pb - 1 Для голосования написать @SpanishInquisitionBot команду start (впереди слеш!) Или отдай свой голос тут:

Bastad
03.10.2017
21:05:24
Кек

Byte
03.10.2017
21:05:33
Dolphin
03.10.2017
21:33:51
@Dolphin_Soft тут?)
тут, на работу собираюсь

Alex
03.10.2017
21:34:06
Dolphin
03.10.2017
21:34:16
Это правильно :D

Alex
03.10.2017
21:35:21
Я тут все-таки пытаюсь до конца осилить вчерашний разговор. Допустим, я хочу проверить, что у меня вольтаж упал до 3.2В Для этого я делаю 3.2/5=0.64В Получаю число с АЦП, нпример, 200. Умножаю это на шаг. 200*(1.1/255)=0.862745098 и потом еще раз умножаю на 5, чтобы получить реальное значение (4.31372549В). Но деление на 5 даст не точный результат. Поэтому можно просто сдвинуть на 1 порядок («1) и получить число как после умножения на 2. То есть в моем случае 43.1372549 Но зачем?)

@Dolphin_Soft

Google
Dolphin
03.10.2017
21:36:41
У тебя нет аппаратного умножения и деления, а следовательно, все операции очень дорогие

как по памяти так и по времени исполнения

твоя задача свести к минимуму умножения и деления, а всю плавающую арифметику привести к целочисленной

Alex
03.10.2017
21:38:14
а я голову ломал)

Dolphin
03.10.2017
21:39:56
Это хорошая практика для любого камня, просто учись приводить вычисления в упрощенную форму, особенно где точность не нужна

Alex
03.10.2017
21:39:56
так все равно ж делить придется(

Dolphin
03.10.2017
21:40:11
а тебе она нужна до десятых

зачем делить?

Alex
03.10.2017
21:40:53
ну я должен из числа с АЦП получить вольтаж, чтобы сравнить?)

у меня есть максимум = 1.1В. И есть шкала из 255. Чтобы узнать цену деления придется 1.1/255

sifun
03.10.2017
21:41:29
если тебе нужно просто узнать больше или меньше

Dolphin
03.10.2017
21:41:30
почему 255?

sifun
03.10.2017
21:41:44
пересчитай на калькуляторе и вбей константу

Dolphin
03.10.2017
21:41:45
ноль то тоже считай

Alex
03.10.2017
21:41:48
256, пардон

ну даже если я заоптимизирую и задам как константу

придется умножать цену деления на число из АЦП

Dolphin
03.10.2017
21:43:11
сколько будет 1.1/256?

Alex
03.10.2017
21:43:50
0.004296875

Dolphin
03.10.2017
21:44:12
возми часть значимых разрядов и сдвинь за запятую

Google
Dolphin
03.10.2017
21:44:23
например - 429

а теперь умнож 200 на 429 и посмотри что получается

сечешь? :D

Alex
03.10.2017
21:45:52
85800 против 0.859375

я догоняю) кажется

Dolphin
03.10.2017
21:46:46
правильно, а теперь округли 0.004296875 до последнего значимого разряда

430

430*200=86000

точнее?

Alex
03.10.2017
21:47:29
ага

но умножение все равно есть :D

Dolphin
03.10.2017
21:47:51
а ты подели на два вместо умножения

Dolphin
03.10.2017
21:48:10
сдвигом вправо на 1 разряд

43000

доходит?

осталось одно умножение, которое можно разложить на сдвиги

Alex
03.10.2017
21:50:16
хм, 200 с АЦП = 4.3В

*осознание приходит*

блиать, но это магия >_< как ты это все делаешь?

Dolphin
03.10.2017
21:52:15
X*430 X«8 + X«7 + X«5 + X«3 + X«2 + X«1

Google
Alex
03.10.2017
21:53:24
а вот это совсем черная магия

Dolphin
03.10.2017
21:53:39
буду 15-20 мин

Alex
03.10.2017
21:54:39
твою мать ты колдун

Dolphin
03.10.2017
22:25:42
тут

зырь дальше

раскладываем 430 на 43 и 10

X = X«5 + X«3 + X«1 + X; // * 43 X = X«3 + X«1; // * 10

Admin
ERROR: S client not available

Dolphin
03.10.2017
22:29:30
но с другой стороны, тебе не нужно умножать на 10, нах лишний 0 вконце?

и тогда, все твои вычисления помещаются в uint16_t

Alex
03.10.2017
22:30:12
ух

теперь надо все перечитать)))

Dolphin
03.10.2017
22:30:30
(43*200)»1=4300

Victor
03.10.2017
22:31:20
во: https://www.youtube.com/watch?v=DheSXQuJmek

Dolphin
03.10.2017
22:31:47
(43*255)»1=5482

Сечешь? :D

Byte
03.10.2017
22:32:16
во: https://www.youtube.com/watch?v=DheSXQuJmek
Гхм. А почему рассинхрон на секунду? ;-)

Victor
03.10.2017
22:32:28
Alex
03.10.2017
22:32:49
Сечешь? :D
вроде) 5482 - это 5.482В, максимальное число

погрешность 0.018В

Google
Victor
03.10.2017
22:33:54
теперь надо BMP280 прикрутить

Alex
03.10.2017
22:34:06
я конечно могу юзать эту формулу, но все-таки. Надо раскурить, как до этого доходить. А то я в следующий раз не факт что так извернусь)

Dolphin
03.10.2017
22:34:18
(43*255)»1=5482
красотища да? )

Alex
03.10.2017
22:34:47
да ты колдун)

Byte
03.10.2017
22:35:06
Сжечь его! :-D

Victor
03.10.2017
22:35:32
я что-то пропустил? пропорцию составит же можно, потом привести её к более удобным числам

Dolphin
03.10.2017
22:36:54
да ты колдун)
Это все получилось так красиво знаешь почему?

потому что множитель(коэффициент делителя) =5

Alex
03.10.2017
22:37:55
ну да, с 11 так бы не вышло)

а если бы делитель был 8 - было бы проще же?

Dolphin
03.10.2017
22:39:51
то есть твоя задача: 1. Выбрать делитель правильный (5) 2. Пересчитать константу и сдвинуть в нужный порядок с округлением (0.0042968 -> 430) 3. Разложить умножение сдвигами 4. Сдвинуть результат вправо на 1 (чтобы умножить на 5)

а если бы делитель был 8 - было бы проще же?
не совсем, тогда нужно было бы умножать на 8 и двигать влево, и тогда ты бы вылез за uint16_t

Alex
03.10.2017
22:40:56
4 пункт - поделить же на 2, а не умножить на 5?

Dolphin
03.10.2017
22:41:10
ЭТО ОДНО И ТО ЖЕ ))

я же объяснял, результат одинаковый, только порядок разный

Alex
03.10.2017
22:41:56
только лишний разряд пооявляется)

Dolphin
03.10.2017
22:41:59
да

но тебе же не порядок нужен, а конкретные циферки

которые ты можешь сам интерпретировать как хочешь

Страница 3541 из 7737