-
- Если я правильно понял резидента, оно работает - вы фиксируете
переход и в зависимости от этого прибавляете или не прибавляете
65536. Так и делается, просто не нравится. Кстати в моем случае
энкодер 18 разрядный - шкала 262144, но это сути не меняет - Anvar(26.06.2024 11:35)
- Как-то так? SciFi(325 знак., 26.06.2024 11:49)
- Возможно, если по времени уложится, не люблю я в прерывания, циклы
вставлять - Anvar(26.06.2024 12:19)
- Теологический вопрос, а если компилер развернет цикл, остается ли
он циклом? - Andreas(26.06.2024 13:25)
- С циклами проблема не в этом. Вы его делаете, скажем 10, проходит 5
лет, вы лезете в код и думаете, а почему бы не сделать 1000? Будет
же только лучше! - Anvar(26.06.2024 13:35)
- Просто надо рядом написать комментарий с гневным предостережением. - SciFi(26.06.2024 13:37)
- А еще добавить ASSERT , что бы оно не компилировалось, если гневное предостережение не будет учтено. - AlexBi(26.06.2024 17:13)
- Только вчера залез в чужой код и в комменте к константе А гневное
предостережение, что ее менять надо обязательно вместе с константой
В, причем полстроки восклицательных знаков. Но константы В в коде
нет вообще и похожего по написанию нет, много думал. ) - Andreas(26.06.2024 13:41)
- Есть такая тема ,по прошествии 20 лет, иногда проще новый код написать - Anvar(26.06.2024 13:44)
- Просто надо рядом написать комментарий с гневным предостережением. - SciFi(26.06.2024 13:37)
- С циклами проблема не в этом. Вы его делаете, скажем 10, проходит 5
лет, вы лезете в код и думаете, а почему бы не сделать 1000? Будет
же только лучше! - Anvar(26.06.2024 13:35)
- А как же среднее арифметическое без цикла? Хочу всё знать. - SciFi(26.06.2024 12:23)
- Без коррекции перехода пока так. Ессно дает ошибку при переходе Anvar(1663 знак., 26.06.2024 12:51)
- Запросто, кольцевой буфер с указателями - новый добавил, совсем
старый вычел. - Andreas(26.06.2024 12:25)
- Сумма по скользящему окну? Мы тут с переходом через ноль никак не
разберёмся, а эта штука вообще добьёт :-) - SciFi(26.06.2024 12:26)
- Возможно, таких умных слов не знал. Это очередь, при поступлении
элемента он прибавляется к сумме, выходящий с другого конца очереди
элемент вычитается из суммы. Если очередь инициализировать нулями,
то в сумме всегда будет сумма элементов очереди. - Andreas(26.06.2024 13:23)
- Применимо только для целых чисел. При использовании плавучки очень
быстро ошибка округления суммы накапливается. Поэтому если буфер
небольшой, то надежнее каждый раз сумму считать. - reZident(26.06.2024 15:28)
- Как-то незаметно в какой-то момент энкодер начал выдавать коды в плавучке. Обожаю сахару :-) - SciFi(26.06.2024 15:32)
- Причём "прибавляется и вычитается" можно заменить на "добавляется
разность элементов", а разность вычислять правильным образом со
знаком. Тогда скользящая сумма не подвержена ошибке перехода через
ноль. - SciFi(26.06.2024 13:32)
- Да, можно перейти к виртуальному инкрементальному энкодеру, тоже вариант - Anvar(26.06.2024 13:37)
- Применимо только для целых чисел. При использовании плавучки очень
быстро ошибка округления суммы накапливается. Поэтому если буфер
небольшой, то надежнее каждый раз сумму считать. - reZident(26.06.2024 15:28)
- Возможно, таких умных слов не знал. Это очередь, при поступлении
элемента он прибавляется к сумме, выходящий с другого конца очереди
элемент вычитается из суммы. Если очередь инициализировать нулями,
то в сумме всегда будет сумма элементов очереди. - Andreas(26.06.2024 13:23)
- Сумма по скользящему окну? Мы тут с переходом через ноль никак не
разберёмся, а эта штука вообще добьёт :-) - SciFi(26.06.2024 12:26)
- Теологический вопрос, а если компилер развернет цикл, остается ли
он циклом? - Andreas(26.06.2024 13:25)
- Возможно, если по времени уложится, не люблю я в прерывания, циклы
вставлять - Anvar(26.06.2024 12:19)
- Что бы "зафиксировать переход" придется реализовать некий алгоритм обнаружения перехода, написать лишний код, хотя можно обойтись без этого. - AlexBi(26.06.2024 11:47)
- Усреднять только знаковые приращения, в которых нет переполнения и
раз в N отсчетов среднее приращение перекидывать в смещение и
среднее приращение обнулять. Я так понял и в этом может и есть
смысл, если период опроса намного меньше частоты вращения энкодера. - Andreas(26.06.2024 11:44)
- Это кстати идея. Я вспомнил, я с инкрементными энкодерами это делал. А тут проблема видимо в том, что аппаратный, но без счетчика оборотов. Кстати есть аппаратные со счетчиками оборотов, видимо для этих целей тоже - Anvar(26.06.2024 12:04)
- +1. Похожая история с отслеживанием времени. В пределах периода аппаратного таймера можно спокойно отсчитывать задержки. Для более длительных промежутков нужно время от времени (но снова в пределах периода) давать приращение счётчику с бОльшим числом разрядов. - SciFi(26.06.2024 11:47)
- Не-не, прибавлять и вычитать нужно период! Ну как у синуса или косинуса период 2π. - reZident(26.06.2024 11:40)
- Но у вас же неуниверсальная формула? [65535(тут не прибавляем 65536, а дальше почему-то
прибавляем) +(0+65536)+(1+65536)]/3=196608/3=65536. И это почему-то - переход через "0" т.е. его
нужно анализировать и применять разные формулы. У меня буфер, если
что, на 10 значений - Anvar(26.06.2024 12:12)
- Дык 65535 меньше же периода. Вообще идея в том, чтобы от функции, определенной на отдельном отрезке (периоде), перейти к непрерывной периодической функции. По типу синуса. Но поскольку вам как результат нужно именно значение на заданном отрезке, то период из результата нужно убирать (вычитать). - reZident(26.06.2024 12:47)
- После деления в результат будет добавлено не целое число периодов - AlexBi(26.06.2024 11:49)
- Но у вас же неуниверсальная формула? [65535(тут не прибавляем 65536, а дальше почему-то
прибавляем) +(0+65536)+(1+65536)]/3=196608/3=65536. И это почему-то - переход через "0" т.е. его
нужно анализировать и применять разные формулы. У меня буфер, если
что, на 10 значений - Anvar(26.06.2024 12:12)
- Как-то так? SciFi(325 знак., 26.06.2024 11:49)
- Я вам больше скажу, 0 можно делить на любое число, все равно 0
получится :-))) В вашем сообщении нет логики. Зачем делить сумму из
одного значения на 3? Среднее арифметическое считается как Xср =Ʃ(Xi)/N, где i=1...N. Для N=1 делитель 1, а не 3! :-P - reZident(26.06.2024 11:30)
- Вы предлагаете ко всем добавить период (65536)? Если да, то почему
к 65535 не добавили? - AlexBi(26.06.2024 11:50)
- Период добавляется (или вычитается) при переходе через границу периода. - reZident(26.06.2024 12:02)
- Вы предлагаете ко всем добавить период (65536)? Если да, то почему
к 65535 не добавили? - AlexBi(26.06.2024 11:50)
- Если я правильно понял резидента, оно работает - вы фиксируете
переход и в зависимости от этого прибавляете или не прибавляете
65536. Так и делается, просто не нравится. Кстати в моем случае
энкодер 18 разрядный - шкала 262144, но это сути не меняет - Anvar(26.06.2024 11:35)