CiSi писал(а):у меня какраз так и реализовано, первое сообщение поста.
У тебя в первом сообщении какой-то мудреж. у метя буффер - это 16млн - энкодер. А мувинг - это буфер - (16 млн - буфер). Короче мне кажется, что ты там просто тупо запутался
Добавлено спустя 19 минут 51 секунду:- Код: Выделить всё • Развернуть
Оригинал K 0,2
directionTop 1 directionBottom 0
Encoder Bufer Moving Encoder Bufer Moving
0 0 0 0 0 0
100 100 500 100 16777115 -83885575
1000 1000 5000 1000 16776215 -83885575
10000 10000 50000 10000 16767215 -83885575
20000 20000 100000 20000 16757215 -83885575
30000 30000 150000 30000 16747215 -83885575
40000 40000 200000 40000 16737215 -83885575
50000 50000 250000 50000 16727215 -83885575
60000 60000 300000 60000 16717215 -83885575
70000 70000 350000 70000 16707215 -83885575
80000 80000 400000 80000 16697215 -83885575
90000 90000 450000 90000 16687215 -83885575
100000 100000 500000 100000 16677215 -83885575
110000 110000 550000 110000 16667215 -83885575
120000 120000 600000 120000 16657215 -83885575
130000 130000 650000 130000 16647215 -83885575
16777116 16777116 83885580 16777116 99 -83885575
16777215 16777215 83886075 16777215 0 -83885575
0 0 0 0 16777215 -83885575
2 2 10 2 16777213 -83885575
Моя формула
directionTop 1 directionBottom 0
Encoder Bufer Moving Encoder Bufer Moving
0 0 0 0
100 500 100 16777115
1000 5000 1000 16776215
10000 50000 10000 16767215
20000 100000 20000 16757215
30000 150000 30000 16747215
40000 200000 40000 16737215
50000 250000 50000 16727215
60000 300000 60000 16717215
70000 350000 70000 16707215
80000 400000 80000 16697215
90000 450000 90000 16687215
100000 500000 100000 16677215
110000 550000 110000 16667215
120000 600000 120000 16657215
130000 650000 130000 16647215
16777116 83885580 16777116 99
16777215 83886075 16777215 0
0 0 0 16777215
2 10 2 16777213
Добавлено спустя 1 минуту 18 секунд:При этом я сам тоже намудрил. На самом деле у тебя переменная Direction - это знак, а значения Encoder в каждый момент - это твой путь в попугаях, который ты волен перевести в метры. Это если ты при смене направления счетчик обнуляешь.
Добавлено спустя 3 минуты 10 секунд:- Код: Выделить всё • Развернуть
Moving:=Moving+((Bufer-(16777215-Encoder))/K);
Bufer:= 16777215-Encoder;
Moving2 = Moving1+((Bufer1 - 16... - Encoder2))/K);
Bufer2 = 16... - Encoder2
Moving3 = Moving2+((16... - Encoder2 - 16... - Encoder3))/K
Короче у тебя 16 лямов на каждой итерации съедают друг друга