- Какой алгоритм фильтрации указателя уровня бензина применить?
Скользящее среднее как-то не хорошо, просто усреднение тоже
хреново. Бензин при подъёме или на спуске сильно наклоняется и
поплавок всё это время сильно врёт. Подкиньте идею. - Бoмж(02.11.2020 00:12, MCU, полностью)
- Из ТЗ на комбинации приборов ГАЗ/ВАЗ (примерно одинаково, данные
несколько старые- но зато срок давности нда истек)) Илья(476 знак., 09.11.2020 14:18)
- В моей Вектре сложный алгоритм - сочетание поплавка с расходом,
иногда (например, если заглушить после заправки) этот алгоритм
клинит. Но наклон не влияет. Напрашивается идея учитывать поплавок
только в специальной ситуации. - VLLV(04.11.2020 11:11)
- Дяденьки ;), а зачем вы для датчика топлива обсуждаете
характеристику фильтра в частотной области (frequency domain)? - RxTx(03.11.2020 20:46)
- Большое спасибо всем ответившим. - Бoмж(02.11.2020 20:52)
- Это зависит от преследуемой цели. Какова преследуемая цель? - RxTx(02.11.2020 18:36)
- Кстати, на яхте стоит датчик давления. Трубка из бака давит на него
и все. - OlegPowerC(02.11.2020 12:58)
- Тебе нужно на комп записать экспериментальных данных при езде по
горкам. И потом уже подбирать алгоритм. Вначале можно
отфильтровать, чтоб убрать относительно высокочастотные бултыхания
вызванные неровностями дороги и т.п. (постоянная времени или период
-- единицы секунд). Потом, допустим, ровного участка не было, и
всегда горки. Здесь сгодится среднее (но не медиана!), но
посчитанное на относительно большом периоде, вроде единиц минут.
Допустим, горная местность, кавказ. fk0(174 знак., 02.11.2020 12:33)
- Уже массу раз его вспоминали. Зачем? По сути скользящее среднее
(SMA) и экспоненциальное скользащее среднее (EMA) -- это такие
плохонькие оконные функции для КИХ-фильтра: fk0(502 знак., 02.11.2020 12:24, ссылка, картинка)
- Последний (или предпоследний) перл мутного гения , расчет по
потреблению форсунок.Опорный уровень по поплавку устанавливают
только на заправке по росту уровня в баке видимо.Типа машина там
ровно стоит.Смешные казусы.Езжу на ГБО , а мозги думают что бенза
расходуется.Приезжаю на заправку бензы , а она в бак не лезет. PlainUser(176 знак., 02.11.2020 11:13)
- MEMS гироскоп и откалибровать по углам наклона. Дорого-бохато! - mse homjak(02.11.2020 10:48)
- Поставь второй поплавок, чтобы в противофазе работал и усредняй. - Звepoящep(02.11.2020 09:59)
- Стесняюсь спросить - ЗАЧЕМ? Зачем измерять уровень топлива в баке
точно? В чем сакральный смысл этого действа, если будущее
потребление можно спрогнозировать очень примерно? При том, что
мгновенное потребление может быть измерено весьма точно. Форсунки
дозируют топливо строго по топливной карте. К этому добавим
изрядный объем топлива в рампе и необходимость обязательного
остатка топлива в баке для того, чтобы не подпалить погружной
насос. Бонусом к проблеме идет сложная форма my504(313 знак., 02.11.2020 09:21 - 09:27, youtube)
- а там разве не датчик давления снизу? - General(02.11.2020 09:22)
- При правильном расположении поплавка (по центру бака) зависимость
уровня от наклона сводится к минимуму. Ну и усреднить тупо с
постоянной 20-30сек без всяких наворотов. il-2(105 знак., 02.11.2020 09:07)
- Поставить инклинометр и блокировать уровень по нему. - General(02.11.2020 08:30)
- Экспоненциальный фильтр? - Visitor(02.11.2020 08:21)
- Достаточно обычного усреднения на 2 минуты. И исключать из
алгоритма торможение/ускорение по датчику скорости в течении 20
секунд. И акселерометр бы не помешал. - Nikolaev_Aleksey(02.11.2020 08:08)
- судя по тому как он работает в логане, там что-то типа усреднения
за несколько минут + периодически скидывает отфильтрованное
значение в еепром, его и выводит на индикатор. возможно еще
прикручен фильтр на максимальную скорость изменения среднего
уровня. типа отслеживает момент заправки и какое-то уж очень долгое
время, часа час-два-три после заправки полного бака, уровень не
меняет вообще. хз зачем это сделано. - LordN(02.11.2020 08:07)
- Меня, например, не напрягает то, что стрелка немного отклоняется на
склонах. Это как бы естественно. - SciFi(02.11.2020 08:05)
- Это какой же подъем/спуск должен быть чтобы бензина в баке заметно
изменилось? Просто постоянная времени должна быть большой.
Включаешь зажигание оно быстренько измеряет скока топлива, а потом
подрубается фильтр. Понятно, что есть погрешность начального
измерения в зависимости от наклона парковки, но через 10 минут она
уберется. - Codavr(02.11.2020 03:31)
- Добавить акселерометр-инклинометр и скормить все это дядюшке
Калману - MBedder(02.11.2020 00:25)
- Спрошу теперь здесь. Есть ли в природе клипса для bga-шариков,
чтобы не покупать дорогущий сокет и не разводить тестовую плату? andrews(55 знак., 06.10.2020 15:03, MCU, полностью)
- У меня 10-битная архитектура. Можно ли в Java завести тип 10-битное
слово, или только 16-битное с маской? Если нельзя, то в каких ЯВУ
можно? - andrews(28.10.2020 16:44, MCU, полностью)
- List of arbitrary precision arithmetic software - RxTx(30.10.2020 13:35, ссылка)
- В Java примитивные типы - только 8, 16, 32, 64 бит. "Не
примитивные", т.е. ссылочные могут быть какими угодно, только
работать с ними вы скорее всего не захотите. - Argon(29.10.2020 17:40)
- Ничего себе! - Evgeny_CD(29.10.2020 01:50, ссылка)
- Это что за архитектура такая? - MBedder(28.10.2020 17:02)
- L60 - andrews(28.10.2020 20:25)
- Версия: 572ПА1 - Kpoк(28.10.2020 17:38)
- Это ж просто ЦАП с параллельным портом. Обычных масок достаточно, у
32-разрядных МК gpio обычно имеют 16-32 пина, можно все 10 завести
на один порт. - evgeniy1294(28.10.2020 17:46)
- Это ж просто была попытка пошутить. - Kpoк(28.10.2020 18:07)
- Я уже на это 50 часов времени убил и готов потратить еще 300. - andrews(29.10.2020 15:19)
- L60 - это "процессор конца 60-х" когда еще не было 8008!в 60-е годы
в Ленинграде в КБ-2 Староса была создана новая технология, которые
сами создатели назвали "куб памяти". Они придумали, как делать
ферритовую память для компьютеров не на катушках с ферритовыми
сердечниками, а просто просверливая отверстия в пластине феррита! И
получилась на небольшой по размере пластине значительная по тем
временам емкость энергонезависимой и относительно быстродействующей
памяти. На andrews(1242 знак., 28.10.2020 21:07)
- Или
политзаключённые погибающие к кровавых лагерях
гулага выдающиеся советские учёные в СССР как всегда украли позаимоствовали технологию у... Ford Motor Company! Верней её
подразделения Aeronutronic Division работающего над задачами мин. обороны США на кровавую американскую военщину. В марте 1963 они уже печатали
рекламные брошюры, начались разработки понятно лет на 5 раньше. fk0(1929 знак., 29.10.2020 15:54, ссылка, картинка)
- Когда идея и нужна и витает в воздухе, то ... "Кто первый встал,
того и патент". А работать - могли и параллельно. - Toчкa oпopы(29.10.2020 17:26, ссылка)
- "Я, американский инженер, – говорил он, – предлагаю программу
работ, которая позволит советскому народу обогнать Америку в самой
важной гонке ХХ века, превосходящей по своему значению и ядерную, и
космическую гонку – первыми создать самые быстродействующие и самые
массовые в мире вычислительные машины для обороны страны, для
управления производством и просто для рядовых людей" Старос. Если
что, он в "домашних тапках" из штатов отчалил в 1950 году. Попал
под колпак andrews(182 знак., 29.10.2020 16:11)
- Aug. 31, 1959 - Publication II, "Biax High Speed Magnetic Computer
Element,' - 16-21 ноября 1959 г. - "Некоторые схемы на ферритовых
сердечниках с диаметральными отверстиями." Так и диссертации писали
и пишут, если кому это нужно. Даже книги так получатся. - Boвa(29.10.2020 16:06)
- Круто! Но меня в этом проекте больше заинтересовала проблема
механической обработки ферритовых пластин. - Kpoк(29.10.2020 00:46)
- Бляаа! В деревню, в глушь, в Саратов!(с) :)) - MBedder(28.10.2020 22:08)
- Вы планируете реализовать программную эмуляцию ядра? Для столь
экзотической архитектуры придется пилить свой бэкенд для
компилятора llvm. А как будет произведена эмуляция уже не так
важно, хоть программно, хоть аппаратно на FPGA. - evgeniy1294(28.10.2020 21:31)
- Это, конечно, интересно но при чём тут Java? - SciFi(28.10.2020 21:12)
- Заработался значит) - evgeniy1294(28.10.2020 18:14)
- Подскажите как сейчас правильно организовать в микроконтроллере
программные таймеры? Peter_M(164 знак., 23.10.2020 12:50, MCU, полностью)fk0
- Подскажу еще один способ замеров интервалов времени. Без inc/dec
счетчиков. Для примера, ST HAL предоставляет время в ms посредством
функции HAL_GetTick(); Единожды запоминаем текущее время: static
uint32_t time_start = HAL_GetTick(); и далее в том месте где надо
проверить не вышло ли время, просто находим разницу между начальным
и текущим временем непосредственно в самом условии: if
(HAL_GetTick() RxTx(130 знак., 25.10.2020 16:10 - 18:41)
- Вот так делаю. Удобно Tpoeшник(796 знак., 25.10.2020 08:45 - 10:37)
- Раз уж дело дошло до типов, задам вопрос здесь(в этой ветке): а в
чем смысл писать std::uint32_t вместо просто uint32_t? - Constantin24(26.10.2020 08:05)
- INT16U и INT08U это наверно специально для выноса моска? - Vit(25.10.2020 09:00)
- Еще бы U8 и U16 можно было бы понять - VLLV(25.10.2020 10:41)
- Это для того чтоб не выписываться и чётче видеть важное. Где то
подсмотрел. - Tpoeшник(25.10.2020 10:27)
- Чем stdint.h не устраивает? - VLLV(25.10.2020 10:42)
- Еще компактнее будет сделать mbedder.h с понятиями u8, u16, u32,
u64 и s8, s16, s32 и s64. Для еще большей сестры таланта можно
вместо битовой длины залудить байтовую - u1, u2, u4, u8 и s1, s2,
s4, s8 :)) - MBedder(25.10.2020 10:48)
- Вот я тоже себе сделал u1, u2, u4, u8. Непонятно, кто и зачем
придумал uint32_t ? Ведь всё равно нету uint29_t, uint31_t и т.д.
Зачем тогда в 8 раз умножать? Ale3000(134 знак., 27.10.2020 04:17)
- У меня global.h в котором: Tpoeшник(742 знак., 26.10.2020 11:38)
- Вот в фортране как было удобно-то. Если переменная начинается на
"йоклмн" -- то целая, иначе вещественная. - fk0(25.10.2020 13:16)
- После того, как увидел, что компилятор ARM по разному компилирует
самопал и стдинт, больше самопал не использую. Неважно, что оба
варианта работают. - VLLV(25.10.2020 13:03)
- stdint - это ведь тоже самопал, набор typedef и #define. Кто мешает
сделать свое точно так же, а не через алиасы? - MBedder(25.10.2020 13:15 - 13:19)
- Что такое int_fast32_t я знаю будучи пьяным и разбуженным в 4 утра.
Что такое u8 -- не знаю, не уверен, ибо есть нюансы. Для
int_fast32_t есть INT_FAST32_MAX и PRIdFAST32 например, а для u8
что? Для именно u8 или i8 вообще интересно, это char, signed char
или unsigned char (кто не знает -- это ТРИ РАЗНЫХ типа). Можно для
всех библиотечных типов придумать свои алиасы, но читать такую
программу -- невозможно. Потом #define вместо typedef использовать
нельзя, т.к. у него fk0(809 знак., 25.10.2020 14:58)
- Да никто не мешает, но лучше иметь возвожность свалить вину на
компиляторописателей, а не рвать волосы на ж. Опять таки,
кросс-платформенность уже реализована, меньше думать. - VLLV(25.10.2020 14:04)
- stdint - это Стандарт, заголовок, обязанный быть у каждого
компилятора - lloyd(25.10.2020 13:18)
- Заинтриговал. А какой вариант красивше скомпилировался-то? Может,
самопал надо было брать? - SciFi(25.10.2020 13:12)
- есть системный таймер uint32_t sysTimer_ms который инкрементируется
каждую 1мс. При необходимости можно любой добавить - 100мс, 1с,
1час. Потом для таймера завожу переменную uint32_t timer_n. Ну и
дальше просто: AVF(451 знак., 25.10.2020 08:17)
- "Программный таймер" - это вырожденный случай оси, предоставляющей
сервис времени. =AK=(276 знак., 24.10.2020 14:27, ссылка)
- Эх-хе-хе... Помницца, был здесь знатный срач по поводу 100500
канального ШИМ на АВР. - mse homjak(24.10.2020 00:17)
- Ответов много и все верный.. ну как же моих трех копеек ))... POV_(2655 знак., 23.10.2020 19:43,
)
- Библиотека тут чрезмерна, заводишь несколько декрементных счетчиков
и всё. Счетчик это хорошо накатанная (шаблон, паттерн) конструкция
вида RxTx(362 знак., 23.10.2020 19:37)
- только так и делаю. Оно ж (через 1 мсек) всё равно щелкает. А какая
там библиотека? Таймеры щелкают в прерывании systick/ - Лaгyнoв(23.10.2020 18:48)
- Как вариант - Evgeny_CD(23.10.2020 18:13, ссылка)
- Генерим прерывания от одного аппаратного таймера каждую
миллисекунду (наименьший общий квант). Делаем N софт-таймеров и
инициализируем их требуемыми значениями периодов в мс - 3, 25, 100,
60000. В 1-мс прерывании декрементируем каждый софт-таймер, и при
достижении нуля переинициализируем его прежним значением и
генерируем event, interrupt или что угодно. Это все - не благодари
:)) - MBedder(23.10.2020 16:29)
- напишу общий комментарий к выложенным примерам. Mahagam(389 знак., 23.10.2020 16:25)
- Мое решение выглядит следующим образом: evgeniy1294(3490 знак., 23.10.2020 15:57)
- Нужна очередь с приоритетом (priority queue), реализуется на
двоичной куче... Если таймеров буквально меньше десятка, то просто
односвязный список. В списке хранится абсолютное время
(относительно некой точки отсчёта, не важно какой), после которого
таймер должен сработать. Логика работы такая: fk0(1965 знак., 23.10.2020 15:43 - 15:51, ссылка)
- Воистину, у погромистов мозги набекрень... ))) Из любой
элементарщины сделают "винду"... - my504(23.10.2020 16:42)
- Как-то сложно для микроконтроллеров. Легче вдуплить все таймеры в
массив, в прерывании отнять 1 от значения каждого софт-таймера и
если ноль вызвать калбек функцию (при её наличии) Boвa(141 знак., 23.10.2020 15:48)
- Да ничего сложного, у меня на PIC18 работало. Попозже код напишу.
Вот куча (очередь) -- сложно и не знаю как тут проще (если таймеров
100 штук). - fk0(23.10.2020 15:52)
- Да в принципе можно и так как вы пишите, но вместо односвязного
списка - очередь упорядоченная по оставшемуся времени. Сортировка
по времени происходит в момент добавления события. В момент
обработки события событие выбрасывается, и головой очереди
становится следующее. НО если нужно сформировать какую-то циклическую последовательной
действий очень все это не красиво будет. - Boвa(23.10.2020 16:02)
- Проблема линейной очереди -- гигантское время вставки если в
очереди 6144 таймеров, например. Кроме того API прикладного уровня
может иметь, например, функцию остановки/отмены запущенного
таймера. Т.е. нужны операции: 1) вставки в очередь, 2) извлечение
из головы очереди, 3) удаление произвольного элемента. Бинарная
куча выглядит диковато и перетряхивает вообще всю память, но у ней
худшее время понятно. Есть вариант со скип-листами, но там удалить
физически нельзя, только fk0(427 знак., 23.10.2020 20:49, ссылка)
- Какая еще библиотека? Вы не в состоянии написать инкремент
переменной со сравнением и сбросом? my504(493 знак., 23.10.2020 13:51)
- Я могу ошибаться в рассуждениях. Peter_M(691 знак., 23.10.2020 15:22)
- Системы с "тиком" -- не нужны, если это не time triggered
архитектура. См. мой ответ выше. Он даёт таймеры с минимальной
дискретностью (а не с тиками по 50мкс и сверхчастыми прерываниями).
Правильно, незачем вообще что-то инкрементировать. Поэтому вся
арифметика над абсолютным значением времени в будущем, а не над
временными интервалами (т.е. "проснуться когда время >=
13:00", а не "спать 3 часа"). Равно как и незачем за раз
обрабатывать более одного таймера, если их fk0(23 знак., 23.10.2020 15:49)
- Какая точность нужна для выдержек времени? Обычно программные
таймеры не требуют шести знаков точности. Исходя из потребной
точности/разрешения следует выбрать максимальный интервал
аппаратных прерываний. Если не инкрементировать частные таймеры, то
придется сохранять стартовые значения софтовых таймеров и выполнять
математику сравнения с единым таймером. Оно зачем? Никакой экономии
не будет. Сплошная путаница. А так, назначили пересчет, сбросили
тело таймера в коде (тело my504(109 знак., 23.10.2020 15:45)
- у меня подобное реализовано на регистрах сравнения таймера, также
можно устанавливать произвольные значения , при установке считываем
текущее значение счетчика , добавляем новое время, грузим в
свободный регистр сравнения, в таблицу кладем указатель на функцию
которую нужно ввызвать по таймауту! все работает аппаратное и не
жрет ресурсов! На 3 аппаратных таймера stm32 выходит 12 независимых
счетчиков - Aleksey_75(23.10.2020 15:36)
- а что за контроллер ? мож использовать регистры сравнения таймера? - Aleksey_75(23.10.2020 13:26)
- Обычно не нужно строго выдерживать период, достаточно "в следующий
раз через N мс или чуть позже". В этом случае удобно вот так: SciFi(424 знак., 23.10.2020 13:15)
- как переводится передаточная функция в формулу для
микроконтроллера? к примеру W(s) = 1 / ( 1 + k*s) - Constantin24(21.10.2020 11:28, MCU, полностью)
- Подскажите, на чем лучше реализовать? Подключаемый по USB
программатор с устанавливаемым с шагом 0.5В программирующим
импульсом 23В+/-2В Если Piccolo, то это ведь "из пушки по
воробьям". Остальные параллельные выходы дб толерантны 5в логике.
Например для программирования 573РФ2, КС573РФ2, 2716 21V и пр. - andrews(23.10.2020 23:49, MCU, полностью)
- Камрады, подскажите, как сделать цепочную обработку значений? Dingo(322 знак., 12.10.2020 07:49, MCU, полностью)
- Как что с pudn.com скачать? - fk0(18.01.2011 15:23, MCU, полностью)
- Скачайте pls файлик de8681_w.zip - в инете в открытом доступе он уже не живет, по ссылке -> - Make_Pic(29.07.2019 11:04, ссылка)
- Пожалуйста скачайте SDK sergeyb2009(50 знак., 13.05.2019 03:04)
- Пожалуйста скачайте SDK: psb(48 знак., 11.01.2019 20:37)
- Пожалуйста скачайте файл mrpcjhsdk_v1.0u19.3_20100323 - GOOSE(04.11.2018 03:16)
- Помогите, пожалуйста, скачать файл с pudn.com cmn74(109 знак., 27.11.2017 12:40)
- У кого доступ к pudn - Скачайте pls по ссылке файл: Make_Pic(77 знак., 09.04.2013 00:51)
- хороший ресурс. я регистрировался и чесно залил 5 своих исходнегов, которые не жалко было :). - RED_DRAGON(20.01.2011 11:55)
- Частично то что лежит на Pudn можно взять здесь: 74ALS(87 знак., 18.01.2011 15:33)
- зарегиться и чтонить закачать для начала. - Snaky(18.01.2011 15:25)
- Хваленый MSP430F67791A с сигма-дельта 24 бита дергается что дурной
и имеет большое смещение, погрешность температуры при использовании
PT100 получилась три-четыре градуса. - VLLV(08.09.2020 01:12, MCU, полностью)
- Продолжаю откапывать старье. Свой RX проект, эх ничерта не
компилится, Ренесасовские драйвера огорчили - переписываю. Уже Aito
negotiation готов - OlegPowerC(13.09.2020 11:46, MCU, полностью)
- интересно, кто-нить заради интереса, пробовал свои старые проекты
сделать заново на новой элементной, с новым опытом и т.д. и как
оно? - LordN(13.09.2020 22:11)
- Ваша библиотека USB_AT90.zip не работает на AT90USB162 :) - Kceния(13.09.2020 18:36, ссылка)
- И вы лучше заходите на мой публичный Git OlegPowerC(46 знак., 14.09.2020 08:05, ссылка, ссылка)
- Запросто :-) не пробовал :-) OlegPowerC(38 знак., 14.09.2020 07:57)
- Я ее с AT90USB1287 на AT90USB647 сама переделала, но с AT90USB162
ничего не выходит. - Kceния(14.09.2020 12:19)
- А актуально? Могу сделать если реально надо. - OlegPowerC(14.09.2020 19:46)
- AT90USB162 - самый дешевый из известных мне вариантов 5-вольтового
МК, поддерживающего USB-CDC девайс, тогда быстрая арифметика от
него не требуется, а нужно лишь, чтобы сообщения в виртуальный
COM-порт исправно посылал. Если знаете, то можете предложить ему
альтернативу, но только обязательно тоже 5-вольтовую.
USB/COM-конверторы типа FTDI или CH341 плохи тем, что выглядят со
стороны компьютера, как Ардуино :), и требуют согласования
baudrate. Kceния(118 знак., 15.09.2020 01:19)
- А так там нет OTG - Наде поправить - OlegPowerC(14.09.2020 07:58)
- А что, никто не отмечает День Погроммистов?! Мы с супругой - уже.
Догоняйте.. С праздником!! - argus98(12.09.2020 14:49, MCU, полностью)
- Чего-то не соображаю сегодня. Хочу к целочисленным данным применить
экспоненциальный фильтр вида Yn=a*X+(1-a)*Yn-1 Естественно, при умножении будет неточное значение. Как посчитать
ошибку к накоплению? Dingo(224 знак., 27.08.2020 13:32, MCU, полностью)
- Дык, эта. Мониторить значения сигнала до фильтра, и если они больше
выхода фильтра, то и учесть. Не? - Бapбoc(29.08.2020 22:46)
- Нет там никакой ошибки накопления IBAH(121 знак., 28.08.2020 15:25)
- Это не ошибка. Это порог. Причем он при определенной ситуации может
стать ловушкой, когда слишком малое входное значение не сможет
уменьшить текущее значение фильтра. Решается фикспойнтом для
значения фильтра. То есть нужно добавить справа к значению фильтра
нужное число дробных разрядов и каждое новое входное значение левым
сдвигом делать фикспойнтом. При выводе значения фильтра наружу
восстанавливать целочисленную разрядность правым сдвигом. - my504(27.08.2020 23:12)
- Если a больше, чем 0.5 (а именно так и должно быть), то ошибка не только
не накапливается, но и рассасывается со временем. Kceния(406 знак., 27.08.2020 22:48)
- Если принять, что а = 2^-n и отнормировать к формату результата, то
и умножение сдвигами делается и ошибки не будет. к примеру, выход
16 бит, вход 10: а = 2^-6. Даже на ПИК проце отлично работало. - Visitor(27.08.2020 18:37)
- Ну вот пример для беззнаковых интов: Visitor(35 знак., 28.08.2020 14:23)
- Вот это "Даже на ПИК" звучит оскорбительно. Тем более, что честные
пиководы в этой формуле обходятся одним умножением. - Kpoк(27.08.2020 22:16)
- Ах целочисленными. Так что мешает a представить как N/(2^k). Например 0.1 = 410/4096 = 410
>> 12. Тогда получается y[n] = (410*x + 3686*y[n-1])
>> 12. - fk0(27.08.2020 20:30)
- "Изобретение" фикспойнта? ))) - my504(28.08.2020 06:21)
- Слишком громко сказано. Никогда "фикспоинтом" это не называл и
никакого отношения к одноимённым библиотекам оно не имеет. Понятно,
что в целых числах нельзя работать с числами от нуля до единицы, но
что мешает всё выражение домножить на некоторую величину -- идея в
этом. Не обязательно 24Q8 или что-то ещё, величина может быть
любая, на которую удобно делить и которая с одной стороны ещё не
наткнётся на переполнение сверху, и с другой позволит приемлимую
погрешность вычислений fk0(253 знак., 28.08.2020 11:24)
- Раз уж ещё раз упомянули - может кините ссылок или материалов на
толковый въезд по теме? А то зачастую "вот библиотека для 24Q8,
пользуйтесь. А я, может хочу 12Q4 и понимать, как оно работает до
битика. Как-то попадалось у TI, но тогда не особо надо было, а
сейчас найти не могу. Пустыня долго хранит, а теперь General ещё и
теги прикрутил! - Dingo(28.08.2020 09:32)
- +100500 - LordN(27.08.2020 19:19)
- Оно же сходится к X при n -> бесконечности. При больших a ~= 1
-- быстро. - fk0(27.08.2020 13:44)
- А чего вообще надо делать, если находишься в прерывании по
окончании задания, и требуется еще раз это же задание запустить? Kceния(694 знак., 27.08.2020 20:16, MCU, полностью)fk0
- Интересует работа constexpr. Так вот столкнулся с такой ситуацией,
что в одном классе происходит выход за массив заполнения. Массив
заполнялся на этапе компиляции(проверено отсутствие конструктора в
list). Предупреждений ничего не было. Все компилилось и работало.
Стоило перенести данные из секции .text в секцию .data, пошел
трабл. При upcast адрес присваивался не корректный. Стало
интересно, как внутри устроен constexpr. - Constantin24(11.08.2020 17:37, MCU, полностью)
- Четырехкнопочная клавиатура по горизонтали Up Down Enter Esc. Как
должны быть расположены кнопки? - VLLV(07.08.2020 22:08, MCU, полностью)
- А я бы руки отрывал за такие клавиатуры. За декаду в телекоме
приходилось работать с разными устройствами. В том числе и с
клавиатурой вряд. Привыкаешь к одному интерфейсу, пытаешься
работать на другом, с другой раскладкой. И тупишь. Nikolay_Po(513 знак., 09.08.2020 14:58)
- Индикатор повернуть на 90 градусов?) - VLLV(10.08.2020 05:41)
- Выше я написал как. Если одна строка, то делаем вид, что листаем
влево/вправо. Если несколько строк, то показываем три со стрелками. - Nikolay_Po(10.08.2020 07:16)
- У меня несколько приборов с 4 кнопками, раньше не было по
горизонтали. В этом, новом, расположить по другому не было места, и
еще - нет строчного универсального текстового индикатора, а есть
специально заказанный ЖКИ. Заказчик логику UI не дал, и у меня в
голове она никак не складывается. Это самый худший вариант
проектирования, боюсь, что будет, как в часах 30-летней давности,
когда логика работы не будет интуитивно понятная. VLLV(357 знак., 10.08.2020 08:14)
- А людей изобревших телефонную цифровую клавиатуру, или компьютерную
(на калькуляторах) -- не знаю уж каких, но вообще сжечь хочется! fk0(1 знак., 09.08.2020 16:04, ссылка, ссылка)
- Реальный пример: ESC ENTER DOWN UP. Объясняю: il-2(353 знак., 09.08.2020 14:22)
- Джойстики "в линию" были сделаны Вниз-Вверх-Огонь. Это стандарт со
времен ZX Spectrum. И это работает нормально, ни у кого проблем не
вызывало. Возникает единственный вопрос где наиболее эргономично
сделать ESC/отмену? До? Или после? Мне наиболее логичной выглядит
группировка Да-Отмена. Поэтому я бы расположил ESC в конце. Итого:
Вниз-Вверх-Да-Отмена. RxTx(7 знак., 09.08.2020 01:13, ссылка)
- "Вниз", "вверх", "отмена", "ввод". Я предполагаю, что "отмена" --
редко нажимаемая кнопка. Иначе "отмена", "вниз", "вверх", "ввод". - fk0(08.08.2020 01:40)
- Более употребительные (Up/Down?) - ближе к "руке дающей". Менее
употребительные (ESC/Enter) - дальше. Для правшей - то же самое
слева направо. - ToчкaOпopы(07.08.2020 23:24,
)
- Esc - Up - Enter - Down. Up - Down рядом это очень неудобно для
пальцев, Enter неудобство разбавляет раздвигая пальцы ))) . Esc
привычно слева. - m16(07.08.2020 22:57)
- яб сделал так Esc Down Up Enter - Aleksey_75(07.08.2020 22:54)
- Как перечислены. - teap0t(07.08.2020 22:24)